javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
时间: 2023-10-14 20:18:16 浏览: 324
这个错误表示你的客户端只支持 TLS1.2 协议,但服务器选择了 TLS1.0 协议,导致握手失败。你可以尝试升级你的客户端,或者询问服务器管理员是否可以支持 TLS1.2 协议。同时,你也可以在你的代码中显式地设置支持的协议版本,例如:
```
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null, null, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
```
这将强制使用 TLS1.2 协议进行 SSL 握手。
相关问题
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version是由于协议版本不匹配导致的SSL握手异常。这通常发生在客户端和服务器之间的TLS/SSL协议版本不兼容时。解决这个问题的方法是,确保客户端和服务器都使用相同的TLS/SSL协议版本。您可以尝试更新您的TLS/SSL库或配置,以匹配服务器的要求。同时,您还可以尝试禁用SSL来解决该问题,即在数据库驱动程序的链接URL中添加?useSSL=false参数。这样可以禁用SSL连接,并使用非加密的方式进行数据库连接。
javax.net.ssl.SSLHandshakeException: Server chose TLSv1, but that protocol version is not enabled or not supported by the client.
这个异常通常是因为客户端不支持服务器选择的TLS版本导致的。解决方法是在客户端中启用TLSv1或更高版本。
如果你正在使用Java,可以尝试使用以下代码启用TLSv1或更高版本:
```java
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
```
如果你使用的是其他语言或框架,请查阅相应的文档,了解如何启用TLSv1或更高版本。
阅读全文