自从苹果开始要求开发者使用SSL数字证书后,SSL数字证书也是顺势被普及了!但是严格的信任机制下,部署证书总会遇到各种问题,比如在Apache中配置Comodo的时候,如果中级根证书没有部署在服务器上,就会出现证书不被IOS信任,例如下图
上图自腾讯提供的ATS检测工具结果。此外本人也开发了一套全面的ssl安装部署验证工具:https://sslzoo.com/sslcheck/
另外使用一些其它的证书检测工具检测也会提示 COMODO RSA Domain Validation Secure Server CA 对应的提示错误:
证书来源: 缺失证书 状态: 错误: 服务器缺少中间证书
但证书能正常访问,只是在Firefox下却提示此链接不受信任,参考:关于Comodo PositiveSSL在Firefox上不受信任的数字证书
所以我们要将Comodo颁发的证书进行合成,例如证书邮件中有4个文件:
sslzoo_com.crt
COMODORSADomainValidationSecureServerCA.crt
COMODORSAAddTrustCA.crt
AddTrustExternalCARoot.crt
因为AddTrustExternalCARoot.crt是根证书,所以不需要只要使用以下命令将上述另外3个证书合成就可以了:
cat sslzoo_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt > sslzoo_com_last.crt
合成结果,就是该目录下出现了一个 sslzoo_com_last.crt 最终证书。
在Apache配置(Windows和Linux通用)和ssl相关的conf文件,例如Windows下的 /extra/http_ssl.conf
DocumentRoot "..."
ServerName www.sslzoo.com:443
SSLEngine on
SSLCertificateKey D:/ssl/sslzoo_com_last.crt
SSLCertificateKeyFile D:/ssl/sslzoo.com.key
SSLCertificateChainFile D:/ssl/sslzoo_com_last.crt
在Apache中重点就是SSLCertificateChainFile的配置,也是合成后的证书文件,保存后重启Apache服务就可以了