Starfield Wildcard SSL 证书并非在所有浏览器中都受信任

Starfield Wildcard SSL 证书并非在所有浏览器中都受信任

我不知道还能尝试什么来使用 Starfield Wildcard SSL 证书调试此问题。

问题在于在某些浏览器(例如 Safari 或适用于 OS X 10.5.8 的最新版 chrome)中,证书被视为不受信任,即使在根域上也是如此。

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

  • 常规 LAMP 设置 - CentOS 6.3 - 在 Godaddy VPS 上
  • Starfield Technologies Wildcard SSL 证书
  • 按照 godaddy 支持页面的说明进行安装
  • ssl.conf 行基本如下:

    SSLCertificateFile /path/to/cert/mysite.com.cert
    SSLCertificateKeyFile /path/to/cert/mysite.key
    SSLCertificateChainFile /path/to/cert/sf_bundle.crt

一切似乎都运行正常,直到前几天晚上我注意到 OS X 中的问题,我认为这与浏览器版本有关,但只能在那台特定的机器上复制它。

我已尝试过:

  • 从 godaddy 的证书存储库和 Starfield 的存储库版本更新 sf_bundle.crt
  • 下列的Jim Phares 给出的 ServerFault 答案- 将 ChainFile 行从 Starfield 的存储库更改为 sf_intermediate.crt
  • 使用http://www.sslshopper.com/ssl-checker.html在我的网址上
    • 它说域名在证书上正确列出,但出现了一个错误,内容是并非所有网络浏览器都信任此证书。您可能需要安装中间/链证书以将其链接到受信任的根证书。

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

如果需要任何其他信息来帮助调试此问题,请告诉我。提前致谢!

解决方案:

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

你可以做两件事:

  1. 验证中间链
  2. 清理中间链

验证中间链

错误似乎表明您的中间证书链存在问题。您应该检查证书的来源,并确保获得了正确的中间包。

openssl x509 -noout -hash您应该使用和命令验证链中每个证书的“哈希”和“颁发者哈希” openssl x509 -noout -issuer_hash。尝试以下操作以获取证书的颁发者哈希:

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

sf_bundle.crt然后尝试在您指定的文件中找到具有此哈希值的证书SSLCertificateChainFile。您可能必须提取证书(或只需将其复制粘贴到命令中):

cat first_cert_from_sf_bundle.crt | openssl x509 -noout -hash

检查所有证书。如果没有证书有这个哈希值,那么肯定是哪里出了问题。继续检查,直到找到一个有相同-hash和的证书-issuer_hash。这就是你的根证书。

如果缺少某些内容,您可以在此处检查其他中间文件https://certs.starfieldtech.com/anonymous/repository.seam。下载这些并将它们-hash-issuer_hash您遇到的问题进行比较。

如果一切顺利的话,那么......

清理中间链

我发现,当你遇到奇怪的验证错误时,这个方法也会有所帮助。确保你的中间链列表仅有的所需的证书和按正确的顺序(如果是 PEM 格式就更容易了)。换句话说,如果你的链是Your cert -> cert A -> cert B -> Starfield Root cert。尝试附加这些按此顺序(你可以跳过第一个和最后一个)所以你的中间链看起来像这样:

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

我个人喜欢将所有这些证书(个人证书,中间证书,根证书)保存在同一个文件中。然后我只需将此文件指定为和SSLCertificateFile即可SSLCertificateChainFile

相关内容