Firefox不信任StartSSL证书问题解决
StartSSL证书的支持率一直是一个很大的问题,今天在Apache中安装完StartSSL证书之后遇到了以下情况:
- Firefox提示“此连接是不受信任的”,同时Opera则在地址栏左侧状态中提示“服务器试图应用安全措施,但没有成功”;
- 桌面版本Chrome显示已经加密,但iOS版Chrome则提示“此网站尚未经过身份验证。”;
- Win7下IE9和iOS版本Safari都显示已经加密。
理论上讲,StartSSL支持除了Opera外所有的主流浏览器,因此Firefox遇到的不受信任的连接是不正常情况。
经过查看官网文档和Google后找到了问题的原因:Firefox仅包含了StartCom的根证书,而中间证书需要服务器提供,一般网上的Howto都不会提及这一点,所以会出现类似问题。
以下解决方法基于Jason Weathered的文章《A free SSL certificate for your web server》改进(之前Kaijia是根据《Setting up SSL: Ubuntu and Apache 2》架设的SSL,其中证书和Key文件都放在/etc/apache2/ssl/文件夹中,此例中假定你将域名的.crt和.key文件也放在/etc/apache2/ssl/中):
首先你需要在StartSSL的控制板的Tool Box->StartCom CA Certificates中下载StartCom CA证书,需要下载StartCom Root CA (PEM encoded)、你的证书等级对应的CA证书(免费的Class 1证书下载Class 1 Intermediate Server CA)。下载完成后将这两个pem文件复制到服务器的/etc/apache2/ssl/文件夹中。
在命令行下运行以下命令:
1 2 3 4 |
cd /etc/apache2/ssl mv ca.pem startssl.ca.crt mv sub.class1.server.ca.pem startssl.sub.class1.server.ca.crt cat startssl.sub.class1.server.ca.crt startssl.ca.crt > startssl.chain.class1.server.crt |
然后修改原来SSL部分的Apache设置,Kaijia虚拟域名的原有设置为:
1 2 3 4 5 |
DocumentRoot /var/www/yourdomain.com ServerName yourdomain.com SSLEngine On SSLCertificateFile /etc/apache2/ssl/yourdomain.crt SSLCertificateKeyFile /etc/apache2/ssl/yourdomain.key |
在原有设置中增加一条:SSLCertificateChainFile /etc/apache2/ssl/startssl.chain.class1.server.crt,更改为如下:
1 2 3 4 5 6 7 8 |
<VirtualHost *:443> DocumentRoot /var/www/yourdomain.com ServerName yourdomain.com SSLEngine On SSLCertificateFile /etc/apache2/ssl/yourdomain.crt SSLCertificateKeyFile /etc/apache2/ssl/yourdomain.key SSLCertificateChainFile /etc/apache2/ssl/startssl.chain.class1.server.crt </VirtualHost> |
之后重启Apache:
1 |
service apache2 restart |
刷新浏览器后Firefox显示连接安全,而Opera在Linux下显示安全,Windows下仍然提示“服务器试图应用安全措施,但没有成功”,可能与系统根证书目录,但毕竟StartCom自己都没说过支持Opera,这样说来问题也是解决了。
thx,按照此文方法解决了~
nginx应该添加什么?
ssl_certificate /usr/local/nginx/conf/cert/ssl.crt;
ssl_certificate_key /usr/local/nginx/conf/cert/ssl.key;
这是前两条,第三条应该是什么呢?
Nginx原则上不支持Chain文件,你需要在终端运行命令:
cat yourdomain.crt startssl.chain.class1.server.crt > yourdomain.chained.crt
然后把ssl_certificate的值改为:
/usr/local/nginx/conf/cert/yourdomain.chained.crt
详见Nginx的帮助文档吧。
了解了,谢谢
[…] 原文地址:http://www.kaijia.me/ […]
[…] Firefox不信任StartSSL证书问题解决 http://www.kaijia.me/2012/08/firefox-untrusted-startssl-certificate-issue-solved/ […]
[…] http://www.kaijia.me/2012/08/firefox-untrusted-startssl-certificate-issue-solved/ […]
[…] http://www.kaijia.me/2012/08/firefox-untrusted-startssl-certificate-issue-solved/ […]
[…] http://www.kaijia.me/2012/08/firefox-untrusted-startssl-certificate-issue-solved/ […]