首页 > 基础资料 博客日记

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

2025-01-14 05:00:07基础资料围观151

本篇文章分享https服务器证书异常javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识


最近生成自签证书遇到异常!

一、异常内容

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

文章来源:https://blog.csdn.net/a10066/article/details/143698637
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云