这实际上适用于我们使用相同证书的许多其他服务,但是当您比较测试结果时,Apache 这样做的方式是最明显和矛盾的。
我们的网站https://webmail.lightspeed.ca上有一个通配符证书。Web 浏览器给我们的客户一个绿色锁,GeoTrust 的 CryptoReport 在https://cryptoreport.geotrust.com/checker/告诉我我们的证书安装正确。然而,当我尝试使用时openssl s_client -connect webmail.lightspeed.ca:443
,我得到了错误Verify return code: 20 (unable to get local issuer certificate)
这是我们的 Apache 配置对于 SSL 的样子:
SSLEngine on
SSLCertificateFile /mailhome/webmail.lightspeed.ca/ssl.cert
SSLCertificateKeyFile /mailhome/webmail.lightspeed.ca/ssl.key
SSLCACertificateFile /etc/ssl/certs/GeoTrust_DV_SSL_CA-G3.pem
虽然我知道连接正在被加密,但显然这个错误消息也意味着我没有被完全验证我所说的我是谁。当我们应用这些相同的证书来表示我们的 SMTP 或 POP 服务器时,这是有问题的,因为某些客户端(如 Outlook for Android)对这些东西非常敏感。例如, http://www.checktls.com/perl/TestReceiver.pl上的测试不喜欢这样,我们得到错误Cert NOT VALIDATED: unable to get local issuer certificate
。我觉得这很奇怪,因为文件 GeoTrust_DV_SSL_CA-G3.pem 是我们的中间 CA 证书。它是我们特定类型通配符证书的 Geotrust 的 CA。
这对我来说只不过是一个恶化的根源。您的帮助将不胜感激。