4

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

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

如果我用 连接-ssl3,OpenSSL 发送一个 SSLv3 ClientHello,服务器用 SSLv3 ServerHello 响应,一切都很好。

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

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

4

1 回答 1

2

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

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

于 2009-04-02T15:19:36.333 回答