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

标签 ssl unity-game-engine https

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 是否是问题的原因。

祝你好运。

关于ssl - 有没有办法防止Unity中的javax.net.ssl.SSLHandshakeException因为服务器不支持SSLv3来防止poodle攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32651484/

相关文章:

Django:使用 Oauth2 和 SSL 时得到 403

apache - ssl_error_rx_record_too_long - 同一 IP 的客户端和服务器 SSL 证书

android - 我应该为 iOS(Game Center) 和 Android(Google Play Games) 创建不同的项目吗?

unity-game-engine - 无法让 Unity 网络播放器加载 Facebook dll

linux - apache https 配置问题

ssl - 什么是 Chrome 扩展 .pem 文件?

apache - 搞乱配置文件后将 www 重定向到 https

c# - Unity 3D/球体中的翻转法线

iis-7 - 同一个IP的443端口中的多个域

javascript - 仅当请求 https 页面时,才通过 https href google 字体