我已经在Ubuntu中的两台服务器的*.domain.com
上配置了HTTPS(在nginx上)。一台服务器是api.domain.com
,另一台是staging-api.domain.com
。我的服务器配置是这样的:
server {
listen 443 ssl;
server_name api.domain.com;
#root /usr/share/nginx/html;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_certificate /etc/nginx/ssl/star.domain.com/8592215832301494.crt;
ssl_certificate_key /etc/nginx/ssl/star.domain.com/server.key;
ssl_trusted_certificate /etc/nginx/ssl/star.domain.com/gd_bundle.pem;
}
api.domain.com
(nginx版本1.4.6)在ssl测试中获得A评级,一切正常。但是staging-api.domain.com
(nginx版本1.10.1)是B级。消息是“此服务器的证书链不完整。等级上限为B。”
这是我的Nginx版本的问题吗?
2条答案
按热度按时间jm81lzqq1#
这不是nginx版本的问题,而是它的配置问题。服务器证书和所有需要的链证书都必须包含在
ssl_certificate
设置的文件中,并且它们的顺序必须正确。有关更多信息,请参阅nginx文档中的SSL证书链。
nfeuvbwi2#
Nginx文档中对cert和key的描述是这样的:
但这些名称与当前的letsencrypt.org SSL文件不对应。
对于那些你想指定这些文件:
然后,当你用https://www.ssllabs.com/ssltest/这样的网站测试你的SSL配置时,你会赢得A级的整体评级。这让人放心:)