Java 6连接SQL Server SSLHandshakeException解决方案
需积分: 23 113 浏览量
更新于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 上传
2023-12-24 上传
2023-06-13 上传
2023-06-03 上传
2023-05-21 上传
2023-09-08 上传
2023-12-26 上传
annan211
- 粉丝: 12
- 资源: 112
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景