使用COMODO PositiveSSL提示安全证书错误
如果你的网站使用了COMODO PositiveSSL来提供https的功能(比如在Namecheap上购买的),如果没有部署正确,会出现在部分安卓手机浏览器上,提示安全证书错误问题。 这里先提供一个很不错的ssl评测网站。
https://www.ssllabs.com/ssltest/analyze.html?d=你的域名
可以提供很多ssl的检查,而且中经常会出现的问题是Chain Issues为Incomplete,如下图。
这个问题主要是因为SSL证书链不完整。在通过PositiveSSL的域名验证之后,会提供一个certification的压缩包,其中会有几个文件:
- 你的域名.ca-bundle
- 你的域名.crt
- 你的域名.p7b (可能没有,不过没有关系)
这个问题就在于nginx上配置SSL的时候,这么配置的
sever {
listen 443 ssl;
...
ssl on;
# certification中的文件,使用了其中的 你的域名.crt 文件
ssl_certificate crt的文件路径
# key文件是在域名验证时通过openssl req -new -newkey rsa:2048 -nodes -keyout key文件名 -out csr文件名
ssl_certificate_key key的文件路径
...
}
其中crt文件配置有误,需要将ca-bundle和crt文件放在一个文件里面,使用
cat 你的域名.crt 你的域名.ca-bundle >> 你的域名.crt.all
其中顺序不能高返,必须要 你的域名.crt 文件在前。然后配置nginx配置文件
server {
listen 443 ssl;
...
ssl on;
# certification中的文件
ssl_certificate 你的域名.crt.all
# key文件是在域名验证时通过openssl req -new -newkey rsa:2048 -nodes -keyout key文件名 -out csr文件名
ssl_certificate_key key的文件路径
...
}