【问题标题】:Workaround for SSL bugSSL错误的解决方法
【发布时间】:2009-04-01 13:24:43
【问题描述】:

我正在连接的 https 服务器的 SSL 实现似乎存在错误;问题最初出现在我的应用程序中,但我一直在使用 openssl 命令行实用程序调试/复制它,所以我相当肯定它与我的应用程序无关。

如果我连接到远程服务器时除了-connect 之外没有其他选项,OpenSSL 将发送 SSLv2 CLIENT-HELLO,服务器以 TLSv1 ServerHello 响应,一切正常进行。

如果我使用-ssl3 连接,OpenSSL 会发送一个 SSLv3 ClientHello,服务器会响应一个 SSLv3 ServerHello,然后一切正常。

但是,如果我使用 -no_ssl2-tls1 连接,OpenSSL 会发送一个 TLSv1 ClientHello,而服务器会以 "TLS 1.0 Alert [length 0002], fatal unexpected_message" 进行响应,这是我在应用程序中看到的原始问题。

在这一点上,有许多可能的解决方法,但我在理想情况下寻找通用的东西,而不是特殊情况下这个特定的服务器,所以我希望有某种“标准”解决方法这个。

【问题讨论】:

    标签: https openssl ssl


    【解决方案1】:

    看来问题实际上是由 RFC 5077 会话票据扩展引起的;禁用此功能(例如,通过将 -no_ticket 传递给 openssl)允许 TLSv1 ClientHello 成功使用远程服务器。由于我的应用程序中没有特别需要此扩展,因此此解决方法似乎是最合适的方法。

    一项小研究表明问题可能只是 empty 会话票据扩展,但我没有费心去弄清楚这个特定的服务器是否存在非空的问题。

    【讨论】:

      猜你喜欢
      • 2010-12-26
      • 2012-01-04
      • 1970-01-01
      • 2012-01-11
      • 2011-01-19
      • 2014-03-22
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多