ssl openjdk的坑

本文记录了一次开发启动Java应用时遇到的SSLException错误及其解决过程。错误发生在HTTPS请求过程中,表现为java.security.KeyException。通过排查发现是由于不同JDK版本间的兼容性问题导致。最终解决方案为更换Oracle JDK版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发 启动应用时报错找了很久都没找到原因,他可以确认代码没有错误,在另一台机上可以java 应用可以跑起来

报错如下:

执行HTTP Post请求https://120.77.56.61:9443/open/oauth/authorization时,发生异常!
javax.net.ssl.SSLException: java.security.ProviderException: java.security.KeyException
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1906)
    at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1889)
    at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1815)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:128)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:8

 

发现问题:

jdk 版本不同引起的
启动环境openjdk

root@d04[16:48:51]:~
$ java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

解决方法:

换成oracle jdk jdk 就ok 了

$ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)


之后启动应用,浏览器请求调用后就不报错了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值