【问题标题】:OpenSSL::SSL::SSLError: hostname does not match the server certificateOpenSSL::SSL::SSLError: 主机名与服务器证书不匹配
【发布时间】:2014-04-21 04:36:24
【问题描述】:

今天早上我的 HTTP 客户端 (HTTParty) 突然抛出错误 OpenSSL::SSL::SSLError: hostname does not match the server certificate

首先我无法理解是哪一个,所以今天我们在过去 2 年中几乎整天都在进行 API 调用,没有任何问题

其次我不明白如何解决它,因为它是 HTTParty 内部的

我唯一知道的是我无法在ENV 中设置SSL_CERT_FILE,但正如我所说,我的/etc/ssl/certs (SSL_CERT_DIR) 中已经列出了ROOT CA

这是我的输出

irb(main):001:0> require "openssl"
=> true
irb(main):002:0> puts OpenSSL::OPENSSL_VERSION
OpenSSL 1.0.1 14 Mar 2012
=> nil
irb(main):003:0> puts "SSL_CERT_FILE: %s" % OpenSSL::X509::DEFAULT_CERT_FILE
SSL_CERT_FILE: /usr/lib/ssl/cert.pem
=> nil
irb(main):004:0> puts "SSL_CERT_DIR: %s" % OpenSSL::X509::DEFAULT_CERT_DIR
SSL_CERT_DIR: /usr/lib/ssl/certs

最后,正如所说,Openssl 没有任何变化,代码方面唯一发生的事情是 openssl 版本引用 HEARTBLEED 漏洞的补丁

请注意,我们只是修补了 openssl 版本,但 didnt recompile the RUBY 这可能是个问题

有问题的 Ruby 是 ruby 1.9.3p327

Net::HTTP 库是版本 httparty-0.13.0

注意:- 作为一种解决方案,我除了在 OPENSSL 中有 VERIFY_NONE 选项

【问题讨论】:

  • 请张贴网址,以便我们检查。
  • “作为一个解决方案,我除了在 OPENSSL 中有 VERIFY_NONE 选项外没有其他选择” - 是的,这可能是最不理想的选择。您不妨使用匿名 Diffie-Hellman 并保存服务器证书旋转。
  • “突然 HTTParty 抛出主机名与服务器证书不匹配错误... OpenSSL 1.0.1 2012 年 3 月 14 日”。 OpenSSL 1.0.1 和之前的版本执行主机名匹配。主机名匹配是 1.0.2 的功能,该版本的 OpenSSL 尚未发布。所以 HTTParty 或 Ruby 发生了一些变化。
  • jww 我已经检查了我们的 ruby​​ 版本和 httparty gem,它几乎一年都一样,现在不知道该说什么

标签: ruby ssl openssl httparty


【解决方案1】:

如果不知道您正在连接的主机,很难确定,但我猜他们只是在服务器端更改了证书。问题可能是,您的脚本不支持 SNI(服务器名称指示,例如同一 IP 后面的多个主机名和证书),但服务器提供商现在更改了此站点的默认证书(如果客户端支持,则使用该证书)不支持 SNI)。

但就像我说的那样,问题中缺乏细节很难确定。

【讨论】:

  • 我将如何检查这一点,我也注意到错误不再出现我现在不知道为什么突然停止给出那些 OPENSSL 错误
  • 您可以通过openssl s_client -connect .. (无 SNI)和openssl s_client -connect .. -servername ...(有 SNI)进行检查。并且您不再收到错误可能是由于服务器端的更改再次引起的。
  • 虽然像这样使用 openssl 是相当新的,我必须管理我觉得它很有趣,但我确实知道大多数数据在你告诉我运行的命令的后续输出中意味着什么 @987654323 @
  • 只是为了检查我在所有三个案例上都做了GET / 时能够得到 200
  • 如果您查看CN=.. 行或将证书(大的base64 blob)粘贴到openssl x509 -text 中,您会看到CN 匹配主机名并且主题备用名称也匹配www.admin .myvideochatnetwork.com。所以目前一切都很好,下次出现问题时,如果有人弄乱了服务器设置,您可以通过s_client 进行检查。
猜你喜欢
  • 2015-06-27
  • 2018-09-28
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
相关资源
最近更新 更多