我在运行Nginx的网络服务器上设置了一个letsencrypt SSL证书。
http到https重定向非www和www工作正常。
直接进入https://www.example.com
工作。
https非www不起作用,浏览器返回拒绝连接。
所以:
http://example.com
至https://www.example.com
http://www.example.com
至https://www.example.com
工作
https://example.com
至https://www.example.com
不起作用
我的网站conf
server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
#ssl certs locations etc.
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
#ssl certs locations etc.
#rest of main block
}
使用命令(certbot-auto
创建了letsencrypt证书,因为服务器正在运行较旧的Linux发行版):
certbot-auto certonly -n -a webroot --webroot-path=[path to webroot] -d example.com -d www.example.com --email foo@example.com --agree-tos
看过其他类似的问题之后,nginx conf应该可行。 我的理解是,我创建证书的方式意味着有一个example.com和www.example.com的证书。
当我加载网站并查看证书时,两者都列在主题备用名称下。
答案 0 :(得分:1)
解决。原来是一个DNS设置问题。有一个注册商定制的域名转发器,用于example.com到www.example.com。删除它并为example.com添加A记录修复了所有内容。