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

Java默认证书异常导致PKIX路径构建失败问题求助

Java默认证书异常导致PKIX路径构建失败问题求助

最近我碰到一个特别棘手的问题:只要运行任何执行纯Java代码的程序(比如编程工具、Java环境相关程序,还有一些基于Java编译的程序)都会报错,但那些只是调用Java的应用却完全不受影响。

举个实际例子,我运行Gradle的时候就会弹出这个错误:

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

其他类似的程序也会报一模一样的错。

我已经试过卸载所有JDK和JRE,重新安装,也手动修改了JAVA_HOME和系统Path环境变量,但问题还是没解决。我并没有连接什么自定义的SSL服务器,只是访问Java默认的那些服务,所以完全搞不懂为什么cacerts文件里的默认证书不起作用。

我隐约觉得这个问题是从Java更新之后开始的,大概两个月前就变成这样了。

对了,我也试过用keytool工具,但Java 17里好像找不到需要的.cer文件(至少我没找到)。


补充完整的错误堆栈跟踪:

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

at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)

at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:378)

at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)

at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:316)

at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654)

at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473)

at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369)

at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)

at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)

at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458)

at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201)

at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)

at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)

at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)

at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)

at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)

at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:589)

at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187)

at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665)

at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)

at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)

at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)

at net.minecraftforge.installer.DownloadUtils.getConnection(DownloadUtils.java:243)

at net.minecraftforge.installer.DownloadUtils.downloadManifest(DownloadUtils.java:307)

at net.minecraftforge.installer.json.Util.getVanillaVersion(Util.java:73)

at net.minecraftforge.installer.actions.ServerInstall.run(ServerInstall.java:86)

at net.minecraftforge.installer.InstallerPanel.run(InstallerPanel.java:423)

at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:175)

at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147)

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)

at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)

at java.base/sun.security.validator.Validator.validate(Validator.java:264)

at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)

at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)

at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638)

... 24 more

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:146)

at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:127)

at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)

at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)

... 29 more

Failed to download version manifest, can not find server jar URL.

备注:内容来源于stack exchange,提问作者DeadStar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 15:52:57