当前位置:首页 » 《随便一记》 » 正文

https服务器证书异常javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX

25 人参与  2024年12月11日 10:02  分类 : 《随便一记》  评论

点击全文阅读


文章目录

一、异常内容1.错误解析:2.常见原因: 二、解决步骤
最近生成自签证书遇到异常!

一、异常内容

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targe

这个错误信息通常是由于 Java 客户端在建立 SSL 连接时无法验证服务器的 SSL 证书,导致握手失败。具体来说,它是因为找不到有效的证书链路径。常见的原因和解决方法如下:

1.错误解析:

SSLHandshakeException:发生在 SSL 握手过程中,通常表示安全协议问题。
ValidatorException:证书验证失败,通常是由于证书链不完整或信任存储中没有正确的证书。
PKIX path building failed:PKIX(Public Key Infrastructure)路径构建失败,意味着 Java 客户端无法验证服务器的证书。
unable to find valid certification path to requested target:无法找到有效的证书路径,通常是因为缺少根证书或中间证书。

2.常见原因:

服务器使用的是自签名证书:如果服务器使用的是自签名证书,客户端的信任存储中通常没有该证书的根证书。
证书链不完整:服务器可能没有提供完整的证书链(例如缺少中间证书),导致客户端无法验证证书。
Java keystore 中缺少相应的证书:如果你连接的服务器使用的是一个不被默认信任的证书(例如私有 CA 签发的证书),则需要将其导入到 Java 的 cacerts 信任库中。

二、解决步骤

检查并导入证书到 Java 的信任库(cacerts)

获取服务器的证书:可以使用浏览器或者 openssl 获取服务器的证书。比如,使用以下命令:

openssl s_client -connect <server_address>:443 -showcerts

将证书导入 Java 的信任库:

keytool -import -alias httpfs -keystore cacerts -file /usr/middleware/java/jdk1.8.0_401/jre/lib/security/server.crt

默认的证书库密码是:

changeit

检查证书是否已经导入

keytool -list -keystore cacerts -alias httpfs

另外删除证书命令

keytool -delete -alias httpfs -keystore /usr/middleware/java/jdk1.8.0_401/jre/lib/security/cacerts

点击全文阅读


本文链接:http://zhangshiyu.com/post/199458.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1