You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用API时遇PKIX证书路径构建失败问题求助

解决Java SSL证书PKIX路径构建失败问题

报错信息

javax.net.ssl|ERROR|01|main|2022-11-22 05:56:38.677 UTC|TransportContext.java:361|Fatal (CERTIFICATE_UNKNOWN): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target (
"throwable" : {
  sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Exception in thread "main" javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

排查步骤

  • 确认目标证书是否导入JVM默认信任库

    • 定位JVM信任库文件:JDK8及以下路径为$JAVA_HOME/jre/lib/security/cacerts,JDK9+为$JAVA_HOME/lib/security/cacerts
    • 用keytool命令检查证书是否存在:keytool -list -keystore <cacerts文件路径> -alias <自定义证书别名>,默认密码为changeit
    • 未导入则执行导入命令:keytool -import -trustcacerts -file <本地证书文件路径> -alias <自定义证书别名> -keystore <cacerts文件路径>
  • 检查代码中是否配置了自定义信任库

    • 若代码里通过System.setProperty("javax.net.ssl.trustStore", "xxx")指定了自定义信任库,需确认该库中包含目标服务器的证书
    • 避免同时混用默认信任库和自定义信任库,防止加载逻辑冲突
  • 验证服务器证书链完整性

    • 使用openssl命令查看服务器返回的完整证书链:openssl s_client -connect <目标域名>:<端口> -showcerts
    • 检查输出的证书链是否从服务器证书到根CA证书完整无缺,若缺失中间证书,需将中间证书一并导入信任库
  • 确认本地系统时间准确性

    • SSL证书有严格的有效期范围,若本地系统时间与实际时间偏差超过证书有效期,会触发证书验证失败
  • 排查网络代理/防火墙干扰

    • 若网络环境存在代理,确认代理未替换服务器证书;若代理使用了自签名证书,需将代理证书导入信任库

内容的提问来源于stack exchange,提问作者Mangesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:45:32