Firefox不信任StartSSL证书问题解决

08/22/2012

StartSSL证书的支持率一直是一个很大的问题,今天在Apache中安装完StartSSL证书之后遇到了以下情况:

  • Firefox提示“此连接是不受信任的”,同时Opera则在地址栏左侧状态中提示“服务器试图应用安全措施,但没有成功”;
  • 桌面版本Chrome显示已经加密,但iOS版Chrome则提示“此网站尚未经过身份验证。”;
  • Win7下IE9和iOS版本Safari都显示已经加密。

理论上讲,StartSSL支持除了Opera外所有的主流浏览器,因此Firefox遇到的不受信任的连接是不正常情况。

经过查看官网文档和Google后找到了问题的原因:Firefox仅包含了StartCom的根证书,而中间证书需要服务器提供,一般网上的Howto都不会提及这一点,所以会出现类似问题。

CA证书的下载界面

以下解决方法基于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/文件夹中。

在命令行下运行以下命令:

然后修改原来SSL部分的Apache设置,Kaijia虚拟域名的原有设置为:

在原有设置中增加一条:SSLCertificateChainFile /etc/apache2/ssl/startssl.chain.class1.server.crt,更改为如下:

之后重启Apache:

刷新浏览器后Firefox显示连接安全,而Opera在Linux下显示安全,Windows下仍然提示“服务器试图应用安全措施,但没有成功”,可能与系统根证书目录,但毕竟StartCom自己都没说过支持Opera,这样说来问题也是解决了。