免费申请使用SHA2签名算法的SSL证书

从2013年开始,我的博客就开始使用StartSSL的免费SSL证书,尽管是Class1级别的,但对于个人博客还是很够用的。

最近为另一个域名续期(重新申请)SSL证书时,却发现了一些问题。我按照网上的教程申请了SSL证书,并添加了中间证书,但在Chrome 41下显示证书存在问题:

使用SHA1签名算法的SSL证书在Chrome下出错

这是为什么呢?

经过查询得知,由于SHA1本身的安全问题,Chrome决定在版本39后逐渐的降低SHA1的“地位”

因此如果要申请失效时间晚于2016年06月的SSL证书,必须要使用SHA2作为签名算法。StartSSL的默认选项也是SHA2算法。但是我检查了一下新申请的证书,有效期为2016年03月,并没有达到过期标准,那为什么Chrome还是提示有问题呢?

原来,不仅是网站的实体证书需要为SHA2签名,证书链(也叫证书路径)上的中间证书也需要为SHA2加密的。

在Chrome浏览器中点击“证书信息”中的“证书路径”选项卡,可以看到当前网站的证书路径,例如对于StartSSL的Class1证书,中间证书为“StartCom Class 1 Primary Intermediate Server CA”。

中间证书

点击“查看证书”,选择“详细信息”选项卡,可以看到证书的签名算法为“ sha1RSA”,签名哈希算法为“sha1”。正是因此,才会提示错误的。

SHA1签名算法的中间证书

为了解决这个问题,需要用新的SHA2证书替换掉原有的SHA1中间证书。从这个网址下载新的中间证书:https://www.startssl.com/certs/class1/sha2/pem/sub.class1.server.sha2.ca.pem并替换掉原本的证书。方法为用纯文本编辑器打开原有(或新生成的).crt证书文件,删除原有中间证书(新生成的请忽略这一步),再将sub.class1.server.sha2.ca.pem文件中的内容添加到原有内容后即可。

替换完成后再查看效果如下:

SHA2签名算法的中间证书

SHA256为SHA2的一种。

Chrome也不再提示错误了:

使用SHA2签名算法的SSL证书在Chrome下正常

对于其他证书供应商,可以参见SHAAAAAAAAAAAAA这个网站进行修改。

一条评论

  1. 现在默认下载的就是SHA2证书了,我是因为一直用老的证书才出现问题的。而且中间证书不对这个问题比较隐蔽,费了不少功夫才搞明白。

    Reply

文章评论: