Java 6连接SQL Server SSLHandshakeException解决方案
需积分: 23 28 浏览量
更新于2024-08-05
收藏 1KB TXT 举报
"该资源主要解决了32位和64位Java 6环境在尝试连接SQL Server 2012或2016时遇到的SSL握手异常问题,特别是关于'Unsupported curveId: 29'和'DH key size must be multiple of 64, and can only range from 512 to 1024'这两个错误。这两个错误通常与Java版本的SSL/TLS支持不匹配以及 Diffie-Hellman 密钥交换算法的限制有关。"
在Java 6中,对于某些现代的加密算法和曲线可能不提供支持,这可能导致连接SQL Server时出现SSL握手异常。"Unsupported curveId: 29" 错误通常意味着Java不支持特定的椭圆曲线加密算法,而"DH key size must be multiple of 64, and can only range from 512 to 1024" 则表示Diffie-Hellman密钥的大小不在Java 6所接受的范围内。
为了解决这个问题,有两种方案:
1. 代码方案:
这种方法涉及到引入额外的JAR文件:`ssl-provider-jvm16-0.2.jar`、`bcprov-ext-jdk15on-1.60.jar`和`bcprov-jdk15on-1.60.jar`到项目的类路径中。这些JAR文件提供了Bouncy Castle加密库,它扩展了Java的加密功能。在使用`DriverManager.getConnection`建立数据库连接之前,通过调用`Security.insertProviderAt(new net.tobszarny.ssl.java6.provider.BouncyCastleSSLProvider(), 1);`将Bouncy Castle作为首选的安全提供者,以便处理不被Java 6原生支持的加密算法。
2. JVM扩展配置:
在JVM的扩展目录下(例如`jdk1.6.0_45\jre\lib\ext`)引入上述的三个JAR文件,并修改`java.security`配置文件(位于`jdk1.6.0_45\jre\lib\security`)。在文件中添加或更新以下两行:
- `security.provider.3=net.tobszarny.ssl.java6.provider.BouncyCastleSSLProvider`
- `security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider`
这样做是为了将Bouncy Castle添加到安全提供者的列表中,并指定其优先级,使其在处理SSL连接时生效。
这两个解决方案的核心都是引入Bouncy Castle库,该库提供了更广泛的加密算法支持,从而允许Java 6环境成功连接到SQL Server 2012或2016,即使这些服务器可能使用了Java 6原生不支持的加密技术。
总结来说,当使用旧版Java连接较新的SQL Server版本时,可能会遇到由于加密算法不兼容导致的连接问题。解决这个问题的关键在于增强Java 6的安全提供者能力,通过引入第三方库如Bouncy Castle来支持现代的加密标准。无论是通过代码插入提供者还是修改JVM配置,这两种方法都能有效地解决这个问题。
2021-05-02 上传
2020-03-31 上传
1349 浏览量
410 浏览量
272 浏览量
1635 浏览量
553 浏览量
annan211
- 粉丝: 12
- 资源: 112
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录