Nginx修改SSL证书,解决Firefox不信任问题

今天用Firefox打开了下之前做了https的网站,发现提示:因为未提供证书发行链信而不被信任。 (错误码: sec_error_unknown_issuer)
我自己用的是Alpha的泛解析证书,在chrome,opera和safari上都是正常的,可是只有在Firefox上不被信任……
经过查看官网文档和Google后找到了问题的原因:Firefox仅包含了Alpha的根证书,而中间证书需要服务器提供,一般网上的Howto都不会提及这一点,所以会出现类似问题。
找到问题就简单啦~先去alpha网站下载下来Alpha Root CA(.pem Format),然后自己做一个等级对应的CA证书,打开alpha的install root certificate网页,里面选择自己的证书类型,复制下来放在记事本里修改文件名为alpha.pem就行啦。得到这两个文件之后,将这两个pem文件复制到服务器的/etc/ssl/private文件夹中
然后在vps里执行

1
2
3
4
5
cd /etc/ssl/private/
mv root.pem root.crt
mv alpha.pem alpha.crtcat alpha.crt root.crt > ca.crt
cat ca.crt > yourdomain.crt(就是你自己的域名证书文件)
但是,如果直接这样重启nginx会报错,这是因为我们在合并alpha提供的crt证书时,直接cat到了 yourdomain.crt 里。
使用 vi 或者 nano 命令打开并编辑 yourdomain.crt ,
找到:
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
修改为
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
接下来就输入
1
service nginx restart
重启nginx
启动成功后,现在使用Firefox访问网站也能信任证书了~