有没有办法防止Unity中的javax.net.ssl.SSLHandshakeException,因为服务器不支持SSLv3来防止poodle攻击?

Unity中的www类有时会返回错误

javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x7a819eb0: Failure in SSL library, usually a protocol error
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:741 0x56aff990:0x00000000)

我假设www类使用SSLv3哪个服务器不支持这个,所以它出现了这个错误.

有没有办法配置www类行为来使用TLSv1.1 / TLSv1.2?奇怪的是,这种错误有时只会发生,而不是总是发生.有时我也得到了java.io.FileNotFoundException:< my_url>同时也发生了SSL错误.

最佳答案 有时www类会返回错误

‘javax.net.ssl.SSLHandshakeException:javax.net.ssl.SSLProtocolException’

尝试使用不同的http客户端,看看是否可以重现此错误.您可能会遇到此错误的原因有多种,并且您没有明确表示您认为这是因为服务器不支持TLS 1.1 / 1.2.以下是我将采取的解决此问题的步骤:

1)确保使用-Djavax.net.debug = all(或者您可以使用的详细日志记录标志)标志来获取详细的日志记录消息.这些对于解决细微的SSL错误至关重要.此标志应提供有关握手的详细日志记录,包括密码套件和SSL版本协商.

2)您可以使用openssl s_client -connect server.com:443 -ssl3来确定服务器是否支持ssl3.尝试不同的版本以查看服务器支持的内容.

3)重要.如果您的客户端不支持SNI且服务器支持SNI,您将收到此错误消息.这就是为什么我建议尝试不同的HTTP客户端(确保其中至少有一个支持SNI)并检查SNI是否是导致问题的原因.

祝好运.

点赞