我不知道为了用Starfield Wildcard SSL证书来debugging这个问题,我还有什么可以尝试的。
问题是,在某些浏览器(例如Safari或最新版本的Chrome OS X 10.5.8)中,证书即使在根域上也不可信。
我的服务器设置/背景信息:
ssl.conf行基本上如下:
SSLCertificateFile /path/to/cert/mysite.com.cert
SSLCertificateKeyFile /path/to/cert/mysite.key
SSLCertificateChainFile /path/to/cert/sf_bundle.crt
一切似乎工作正常,直到有一天晚上,当我注意到在OS X的问题,我认为它是更多的浏览器版本相关,但只能够在该特定的机器上复制它。
我曾经尝试过:
我可以尝试下一步来解决不可信的证书问题?
让我知道是否有任何其他信息可能有助于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!
你可以做两件事:
正如错误似乎表明,有关您的中间证书链有一些东西。 你应该检查你从哪里得到你的证书,并且你得到了正确的中间包。
您应该使用openssl x509 -noout -hash
和openssl x509 -noout -issuer_hash
命令validation链中每个证书的“散列”和“颁发者散列”。 试试这个来获取证书的颁发者散列:
cat /path/to/cert/mysite.com.cert | openssl x509 -noout -issuer_hash
然后尝试在您指定为SSLCertificateChainFile
的sf_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-----
我个人喜欢在同一个文件中保存所有这些证书(个人证书,后面是中间证书,后面是根证书)。 然后我只是将这个文件指定为SSLCertificateFile
和SSLCertificateChainFile
。