yushijinhun / authlib-injector

Build your own Minecraft authentication system.
https://authlib-injector.yushi.moe
GNU Affero General Public License v3.0
730 stars 66 forks source link

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

Closed Guyao146 closed 2 years ago

Guyao146 commented 2 years ago

Hello,我来求助一下

描述 问题是在服务端上出现的 已经想办法在google上研究一天了,大多数办法都试了

Java版本 Jdk17.0.2

证书 在edge上显示仍然有效,且该连接是安全的

启动参数 java -Xmx8G -javaagent:authlib-injector-1.1.45.jar=https://pfz.mcylyr.cn/api/yggdrasil @libraries/net/minecraftforge/forge/1.18.2-40.1.51/win_args.txt %* -nogui

mc服务器启动时使用的injector版本 1.1.45

验证服务器使用的injector版本(Blessing skin) 5.1.5

web服务器 Apache

mc核心版本 mohist 1.18.2 40.1.51-60

-Djavax.net.debug=ssl的完整debug log [authlib-injector] [INFO] Logging file: C:\Users\Administrator\Desktop\1.18.2_mod生存\authlib-injector.log [authlib-injector] [INFO] Version: 1.1.45 [authlib-injector] [INFO] Authentication server: https://pfz.mcylyr.cn/api/yggdrasil javax.net.ssl|DEBUG|10|main|2022-06-10 23:52:29.407 CST|SSLCipher.java:466|jdk.tls.keyLimits: entry = AES/GCM/NoPadding KeyUpdate 2^37. AES/GCM/NOPADDING:KEYUPDATE = 137438953472 javax.net.ssl|DEBUG|10|main|2022-06-10 23:52:30.800 CST|Utilities.java:74|the previous server name in SNI (type=host_name (0), value=pfz.mcylyr.cn) was replaced with (type=host_name (0), value=pfz.mcylyr.cn) javax.net.ssl|DEBUG|10|main|2022-06-10 23:52:31.050 CST|SSLCipher.java:1870|KeyLimit read side: algorithm = AES/GCM/NOPADDING:KEYUPDATE countdown value = 137438953472 javax.net.ssl|DEBUG|10|main|2022-06-10 23:52:31.050 CST|SSLCipher.java:2024|KeyLimit write side: algorithm = AES/GCM/NOPADDING:KEYUPDATE countdown value = 137438953472 javax.net.ssl|ERROR|10|main|2022-06-10 23:52:31.081 CST|TransportContext.java:363|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 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$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1341) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1232) at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1175) 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:1500) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1415) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:450) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:421) at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:580) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183) 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/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3221) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:261) at moe.yushi.authlibinjector.AuthlibInjector.fetchAPIMetadata(AuthlibInjector.java:149) at moe.yushi.authlibinjector.AuthlibInjector.bootstrap(AuthlibInjector.java:96) at moe.yushi.authlibinjector.Premain.initInjector(Premain.java:52) at moe.yushi.authlibinjector.Premain.premain(Premain.java:30) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:491) at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503) 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:141) at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434) ... 32 more}

) javax.net.ssl|DEBUG|10|main|2022-06-10 23:52:31.081 CST|SSLSocketImpl.java:1749|close the underlying socket javax.net.ssl|DEBUG|10|main|2022-06-10 23:52:31.081 CST|SSLSocketImpl.java:1775|close the SSL connection (passive) [authlib-injector] [ERROR] Failed to fetch metadata: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

yushijinhun commented 2 years ago
  1. 请确认验证服务器的证书链是否完整
  2. 请确认你的 JDK 版本是否最新
Guyao146 commented 2 years ago
  1. 请确认验证服务器的证书链是否完整
  2. 请确认你的 JDK 版本是否最新

非常感谢,问题已解决