Eclipe selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]'
时间: 2024-12-30 18:27:44 浏览: 11
### 解决 Eclipse 中 TLS 版本不匹配问题
在Eclipse环境中遇到`The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]`错误,通常是因为服务器选择了较低版本的传输层安全协议(TLS),而客户端偏好较高版本。此情况可以通过调整JVM的安全配置来解决。
#### 修改 `java.security` 文件
针对该问题的一个解决方案是在运行Eclipse所依赖的Java Development Kit(JDK)中修改`java.security`文件设置。具体操作如下:
- 定位到JDK安装目录下的`conf/security/java.security`文件位置;对于采用JDK 11的情况,在Linux操作系统里可能是`/usr/java/jdk-11.0.11/conf/security/java.security`这样的路径[^3]。
- 找到并编辑名为`jdk.tls.disabledAlgorithms`或`jdk.tls.legacyAlgorithms`的部分,移除对TLSv1的支持限制或者直接删除有关TLSv1的相关条目,从而允许使用TLS 1.0进行通信[^4]。
```bash
# 原始内容可能看起来像这样
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA,...
# 调整后的建议内容(移除了TLSv1)
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA,...
```
#### 更新 JDBC URL 参数
另一种方法是通过更改应用程序连接数据库时使用的JDBC URL参数,强制指定更高的TLS版本用于加密握手过程。可以在URL后面加上`;encrypt=true;trustServerCertificate=true;sslProtocol=TLSv1.2`等选项以确保启用更现代的安全协议[^2]。
```properties
jdbc:sqlserver://localhost:1433;databaseName=testDB;encrypt=true;trustServerCertificate=true;sslProtocol=TLSv1.2;
```
以上两种办法都可以有效处理由于TLS版本差异引发的问题,但推荐优先尝试第二种方式——即通过更新JDBC URL的方式解决问题,因为这种方式不需要改动全局性的JDK配置文件,减少了潜在的风险和副作用。
阅读全文