【问题标题】:SSL: When I check via browser i get my purchased godaddy certificate, but when i check with openssl i get a self-signed certificate?SSL:当我通过浏览器检查时,我得到了我购买的 Godaddy 证书,但是当我使用 openssl 进行检查时,我得到了一个自签名证书?
【发布时间】:2012-02-29 01:40:18
【问题描述】:

我的网站拥有 Godaddy 提供的有效通配符证书。当我在浏览器中查看它时,我得到了一个有效的安全证书(绿色挂锁),当我在浏览器中检查证书时,它显示为安全并由 godaddy 签名,一切正常。

但是,如果我使用openssl s_client -connect my.site.com:443

我获得了自签名证书:

issuer=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd

我不明白这是为什么。我的一些用户的浏览器中出现 ssl 自签名错误似乎存在问题,我认为这与此有关。

我正在使用 Ubuntu 11.04 和 apache2。任何想法为什么会出现这种情况,或者我可以如何进一步检查这个问题?

【问题讨论】:

  • 您是从本地主机还是从另一台计算机运行这两个客户端?
  • my.site.com 是否在服务器上解析为 127.0.0.1 从而获得不同的 HTTPS 主机?
  • @Joachim - openssl 和我的浏览器测试在同一个 cpu 上,但有问题的用户浏览器测试在不同的计算机上。我无法在我的计算机上的浏览器中复制错误,只有 openssl 命令我才能看到 ssl 检查结果的任何差异。
  • @ceejayoz 我不确定我是否理解这个问题。我的主机文件中有:127.0.0.1 site.com。我不确定 https 是否也解析为 127.0.0.1。有没有办法验证这一点?

标签: ubuntu ssl apache2 openssl certificate


【解决方案1】:

OpenSSL 的一般问题是它没有预先配置一组受信任的 CA 证书(与您的浏览器不同)。 You need to specify it with -CApath or -CAfile.

您的用户可能面临的另一个常见问题是您可能缺少中间 CA 证书。您的服务器提供的证书链(您确实可以使用openssl s_client 进行检查,如果您想要完整的详细信息,可能使用-showcerts)需要以正确的顺序呈现,从主机证书到根 CA(不包括根 CA ,尽管我注意到在实践中拥有它并没有什么坏处),因此一个证书的颁发者 DN 是下一个证书的主题 DN(直到颁发者 DN 是您信任的 CA 之一的主题 DN)。

【讨论】:

  • 好的,当我使用 -CAPATH 选项时,我可以看到证书链。和-showcerts。因此,您的建议是,如果证书链“无序”或链部分丢失,可能会向用户抛出 ssl 错误?
  • 我不确定中间证书的顺序是否正确。我知道证书捆绑文件是从 godaddy 下载的,我会假设它们的顺序正确。有没有办法检查订单是否正确?
  • 这可能是个问题,是的。检查证书链(使用openssl_sclient)。证书 0 应该是您的服务器,然后 i: 行应该跟在下面的证书中相同的 s: 行。 (问题的另一个常见原因是证书中的主机名必须与用户在他们使用的 URL 中请求的主机名匹配。)
猜你喜欢
  • 2014-01-17
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2017-01-30
  • 2017-09-03
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多