Nginx部署ssl证书请教

1、申请了阿里云的个人测试ssl证书,在本地部署nginx服务器失败
2、将监听443服务写入了/etc/nginx/nginx.conf文件内,并将下载的pem和key也存在本地/etc/nginx/特定目录下
3、启动nginx服务后,仍然不能采用https访问
请教一下阿里云ssl证书的使用方法吧

是Debian12系统,监听80的http服务访问正常

相关配置内容和报错给一下啊。

/etc/nginx/site-avaliable/default配置文件:
server {
listen 443 ssl;
server_name example.com;

ssl_certificate /etc/nginx/cert/example.com.pem; #该目录下这个文件是aliyun下载的
ssl_certificate_key /etc/nginx/cert/example.com.key; #该目录下这个文件是aliyun下载的
#有一些从aliyun拷贝过来的tsl协议行
location {
root /var/www/html;
index index.html;
}

}
nginx运行正常,lsof -i:443也有返回,但https://example.com,不能访问;http可以正常访问

具体是什么现象?curl -v https://example.com 看看呢?

非常感谢您的回复,昨天不能访问,刚刚试了一下,正常https访问了

你能不能修一下格式……

[quote=“gg, post:7, topic:5622, full:true, username:gaeasteel”]
另外请教一下,我想建立一个比如aaa.example.com的子域名,链接在本地开启在localhost:3000端口的服务,如下的default内配置可以吗
server: {
listen 80;
server_name aaa.example.com;
location {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

你的 TLS 设置也要加上。location 后少了 /。

好的,上面这个80端口行和3000端口服务行写法可以的吧,另外还有几点请教一下
1、二极域名是不是也要到阿里云解析先呢?昨天解析了一个二级,结果访问的还是主页
2、可以将80换为443吗,用https访问子域名呢?
3、如果子域名也用ssl访问是不是也要配ssl证书呢?

是。
可。
是。

1 个赞

您好!再请教一下:
进行了二级域名解析,端口换成了443,也申请了ssl证书部署完成(除反向代理外、证书、服务器名外,其他主域名一致)
主页https访问正常,但子域名https访问成功一次后,再就不能访问了
curl -v https://子域名后,返回

  • Could not resolve host:子域名
  • Closing connection 0
  • curl: (6) Could not resolve host:子域名

看起来是你的子域名的解析有问题。使用 dig 子域名dig 子域名 +trace 看看。

多谢,我试过后又修改了域名解析,现在输全https//example.com和https://aaa.example.com而可以访问了
1、主域名有有三个解析@(记录值IP)、www(记录值IP)、_dnsauth(记录值txt),可以正常访问https://example.cm,但是不能用example.com直接访问;
是不是应该直接输入example.com应该也可以跳转https的吧,因为也设置了nginx的重定向
server {
listen 80;
#填写证书绑定的域名
server_name example.com;
#将所有HTTP请求通过rewrite指令重定向到HTTPS。
rewrite ^(.*)$ https://$host$1;
location / {
index index.html index.htm;
}
}
2、另外二级域名aaa.example.com目前只剩下一个解析aaa(记录值IP),删掉了前面的txt记录类型,现在也是可以正常访问https://example.cm,但是不能用example.com直接访问;
这个应该如何处理呢?多谢

你倒是说一下报错信息啊。另外 curl -v 有问题的地址看看。

curl -v exanmple.com
Trying ip…
connect to ip port 80 failed: 拒绝连接
Failed to connect to exanmple.com port 80 after 117 ms: Couldn’t connect to server
Closing connection 0
curl: (7) Failed to connect to exanmple.com port 80 after 117 ms: Couldn’t connect to server

难道说是example.com需要开启80端口吗,现在只开了443

80和443都开启的话就可以访问example.com和https://example.com了,多谢多谢
但我查资料说开启80的话不安全,443比较安全

你查的什么资料啊。你要支持别人使用 HTTP 不加密访问的话,当然只能也监听 80 端口了啊。我觉得你先把 HTTP(S) 学一遍再谈安全比较好。

1 个赞

多谢指导了!