Starfield Wildcard SSL证书不受所有浏览器的信任

我不知道为了用Starfield Wildcard SSL证书来debugging这个问题,我还有什么可以尝试的。

问题是,在某些浏览器(例如Safari或最新版本的Chrome OS X 10.5.8)中,证书即使在根域上也不可信。

我的服务器设置/背景信息:

一切似乎工作正常,直到有一天晚上,当我注意到在OS X的问题,我认为它是更多的浏览器版本相关,但只能够在该特定的机器上复制它。

我曾经尝试过:

  • 从godaddy的证书库和Starfield的版本库更新sf_bundle.crt
  • 在Jim Phares之后的这个ServerFault的答案 – 从Starfield的仓库中将ChainFile行更改为sf_intermediate.crt
  • 在我的url上使用http://www.sslshopper.com/ssl-checker.html
    • 它表示该域在证书上正确列出,但出现一个错误, 错误消息证书在所有Web浏览器中都不受信任。 您可能需要安装中间体/链式证书才能将其链接到受信任的根证书。

我可以尝试下一步来解决不可信的证书问题?

让我知道是否有任何其他信息可能有助于debugging此问题。 提前致谢!

解:

My problem ended up being that I had forgotten to add the SSLCertificateChainFile line to the virtual host(s) in my httpd.conf and had only been editing those lines in ssl.conf instead, thanks for all the suggestions!

你可以做两件事:

  1. validation中间链
  2. 清理中间链

validation中间链

正如错误似乎表明,有关您的中间证书链有一些东西。 你应该检查你从哪里得到你的证书,并且你得到了正确的中间包。

您应该使用openssl x509 -noout -hashopenssl x509 -noout -issuer_hash命令validation链中每个证书的“散列”和“颁发者散列”。 试试这个来获取证书的颁发者散列:

 cat /path/to/cert/mysite.com.cert | openssl x509 -noout -issuer_hash 

然后尝试在您指定为SSLCertificateChainFilesf_bundle.crt文件中查找带有此散列的证书。 您可能需要提取证书(或者只是复制粘贴到命令):

 cat first_cert_from_sf_bundle.crt | openssl x509 -noout -hash 

检查所有这些。 如果没有这个散列,那么有什么是错的。 继续执行这些检查,直到find具有相同-hash-issuer_hash 。 这是你的根证书。

如果缺less某些内容,可以在https://certs.starfieldtech.com/anonymous/repository.seam中查看其他中间文件。 下载这些文件,并将其与-hash-issuer_hash进行比较。

如果一切正常,那么….

清理中间链

我看到这也有帮助,当你得到奇怪的validation错误。 确保您的中间链列出所需的证书并按正确顺序排列 (如果是PEM格式,则更容易)。 换句话说,如果你的链是Your cert -> cert A -> cert B -> Starfield Root cert 。 尝试追加这些顺序 (你可以跳过第一个和最后一个),所以你的中间链看起来像这样:

 -----BEGIN CERTIFICATE----- cert A -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- cert B -----END CERTIFICATE----- 

我个人喜欢在同一个文件中保存所有这些证书(个人证书,后面是中间证书,后面是根证书)。 然后我只是将这个文件指定为SSLCertificateFileSSLCertificateChainFile