SSL错误的解决方法

时间:2009-04-01 13:24:44

标签: https openssl ssl

我正在连接的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"响应,这是我在应用程序中看到的原始问题。

目前有许多可行的解决方法可以表明自己,但我理想的是寻找一些通用的,而不是特殊的外壳这个特定的服务器,所以我希望有某种“标准”的解决方法此

1 个答案:

答案 0 :(得分:2)

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

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