第三方更换通讯证书导致SSLHandshakeException

文章介绍了在遇到服务器证书问题时的快速恢复方法,如直接重启服务器,以及通过设置系统属性允许不安全的服务器证书变更。同时,针对http工具类如Hutool、HttpClient和OkHttp,提出了升级版本和配置绕过SSL验证的解决方案,但这些做法可能影响安全性。

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

https://blog.csdn.net/lh19960914/article/details/126185982

主要考虑从以下几个方面

1、如果想快速恢复,直接重启服务器

2、应用启动添加以下参数:

//解决server certificate change is restricted during renegotiation问题
System.setProperty("jdk.tls.allowUnsafeServerCertChange","true");
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation","true");

3、对于http工具类

    1)hutool升级到5.3.8版本以上

    2)httpclient和okhttp添加绕过ssl验证

HttpClient跳过SSL证书认证攻略_xianyuxiaoqiang的博客-CSDN博客

  OkHttp忽略SSL证书验证-腾讯云开发者社区-腾讯云

### 调用第三方SSO登录接口时出现SSL握手异常问题的解决方案 当调用第三方单点登录(SSO)接口时遇到 `javax.net.ssl.SSLHandshakeException` 和 `sun.security.validator.ValidatorException: PKIX path building failed` 的错误,通常是因为客户端无法验证服务器提供的SSL/TLS证书的有效性。以下是详细的分析和解决方案。 #### 错误原因 该错误表明Java应用程序未能找到一条有效的认证路径来验证目标站点的SSL证书。这可能是由于以下原因之一引起的: - 服务器使用的SSL证书未被Java的信任库(cacerts文件)识别。 - 服务器配置了自签名证书或中间CA未受信任。 - 客户端网络环境中的代理或其他安全设备干扰了SSL连接过程[^1]。 #### 解决方案一:导入正确的根证书到JVM信任库 如果可以获取并确认服务器所使用的是合法但尚未安装至本地JDK/JRE cacerts的信任链,则可以通过手动将其添加进来解决问题: ```bash keytool -import -alias yourAliasName -keystore $JAVA_HOME/jre/lib/security/cacerts -file server-cert.cer ``` 执行此命令前需下载对应的`.cer`格式证书文件,并替换默认密码`changeit`为实际值(视操作系统版本而定)[^1]。 #### 解决方案二:忽略SSL验证(仅用于测试) 对于开发阶段或者非生产环境中允许临时关闭HTTPS校验逻辑以便继续调试业务功能的情况,可采用如下方法实现对所有SSL请求均予以放行处理: ```java public static CloseableHttpClient createInsecureClient() { try { SSLContext sslContext = SSLContexts.custom() .loadTrustMaterial((chain, authType) -> true) // 自动接受任何证书 .build(); HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE; SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory( sslContext, hostnameVerifier); return HttpClients.custom().setSSLSocketFactory(socketFactory).build(); } catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) { throw new RuntimeException(e); } } ``` 注意这种方法存在严重的安全隐患,在正式部署之前务必移除此类代码片段[^2]。 #### 总结 针对上述提到的不同场景分别采取相应措施能够有效应对因SSL Handshake失败引发的各种状况。推荐优先考虑正规途径即更新信任存储而非轻易放弃安全性保障。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值