今天在阿里云上购买了WoSign的https证书,在证书签发后,在控制台下载证书文件,一共有2个文件,一个是.key文件(私钥文件),一个是.pem文件(证书文件)。
然后在阿里云负载均衡“证书管理”控制台中创建证书:
将.pem文件中的内容复制/粘贴到上面的“证书内容”文本框中,将.key文件中的内容复制/粘贴到上面的“私钥”文本框中,创建证书总是失败。
查看.pem文件中的内容发现有3个证书(3段以“-----BEGIN CERTIFICATE-----”开始以“-----END CERTIFICATE-----”结束的内容),于是试了试改为只复制/粘贴第1个证书,结果竟然创建成功了。
然后配置到对应的负载均衡上,用https访问站点,Chrome下正常,Safari下正常,IE下正常,唯独Firefox不行。
Firefox中出现如下的错误提示:
ing.cnblogs.com uses an invalid security certificate.
The certificate is not trusted because the issuer certificate is unknown.
The server might not be sending the appropriate intermediate certificates.
An additional root certificate may need to be imported.
Error code: SEC_ERROR_UNKNOWN_ISSUER
很是奇怪,以为是证书本身的问题,于是联系WoSign客服,客服说是因为证书链不完整。
接着想到要先验证一下证书文件本身是否有问题,于是将这个证书的.key与.pem文件部署到一台我们自己的nginx服务器上,Firefox中访问正常,说明证书文件本身没问题。
那问题应该与我们只用了.pem文件中3个证书中的1个有关,但是用3个证书在阿里云负载均衡上配置总是失败,于是向阿里云客服反馈了这个情况。阿里云客服说3个证书都要添加,而且证书之间不能有空行。“证书之间不能有空行”立马提醒了我们,再次查看.pem文件,发现第1个证书与第2个证书之间果然有个空行:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE----- -----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
删除空行后进行配置,问题立马解决。
问题解决后的感想:要是阿里云直接兼容这中带空行的证书,就不用这么折腾了,而且这个证书就是在阿里云上生成的。