idea连接sqlserver出现[08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接错误

错误信息

在这里插入图片描述

选择对应的DataSource
在这里插入图片描述

修改两个地方即可

  1. 修改Advanced页签的trustServerCertificate
    在这里插入图片描述

在使用 JDBC 连接 SQL Server 数据库时,trustServerCertificate 是一个连接参数,用于指示客户端是否信任服务器端的证书。当 trustServerCertificate 参数设置为 true 时,客户端将信任服务器端的证书,即使证书没有经过有效的 CA(证书颁发机构)签名也会被接受。这通常用于开发和测试环境中,以简化配置和避免证书验证带来的麻烦。生产环境还是得设置为false的。2. 修改Advanced页签的VM options:

在这里插入图片描述

一开始是这样的

"-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves"

将其中的 TLSv1和3DES_EDE_CBC 删除,改完后

"-Djdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, anon, NULL, include jdk.disabled.namedCurves"

然后测试连接

在这里插入图片描述

### SQL Server 驱动程序 SSL 连接失败解决方案 当遇到 `No appropriate protocol (protocol is disabled or cipher suites are inappropriate)` 的错误时,这意味着在尝试建立SSL连接过程中出现了协议或加密套件不匹配的情况。此问题可能源于服务器和客户端之间支持的不同TLS/SSL版本或是可用的加密算法集存在差异。 对于SQL Server环境下的此类问题处理方式可以参照以下建议: #### 修改JVM的安全属性文件 编辑Java虚拟机(JVM)使用的`java.security`配置文件来调整被禁用的算法列表,使得能够启用必要的协议和支持更广泛的密码组合[^5]。该路径通常是类似于 `/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/jre/lib/security/java.security` 。修改涉及移除对某些旧版协议(如SSLv3, TLSv1)以及特定密钥长度限制的约束条件。 #### 调整应用程序中的SSL参数设置 针对IDEA或其他开发工具,在其数据库连接配置里增加高级选项以控制SSL行为。可以通过将`useSSL`设为`false` 或者 `no` 来绕过SSL握手过程从而避开因协议冲突引发的问题[^4]。不过需要注意的是关闭SSL会降低数据传输安全性,仅适用于内部网络等相对安全场景下作为临时措施。 #### 更新驱动器库至最新稳定版本 确保所使用SQL Server JDBC驱动及其依赖项都是最新的官方发布版本。新版本往往包含了重要的漏洞修复和技术改进,有助于提高兼容性和性能表现的同时也解决了许多已知的安全隐患。 ```sql -- 检查当前安装的SQL Server版本号 SELECT @@VERSION; ``` #### 启用更高版本的TLS协议 如果应用和服务端均支持,则考虑开启更高的TLS版本(例如TLS 1.2及以上),并相应更新客户端配置使之相适应。部分情况下可能是由于默认策略屏蔽了较新的TLS标准所致。 ```properties # 在启动命令中指定最低允许的TLS版本 -Dhttps.protocols=TLSv1.2,TLSv1.3 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值