Skip to content

1.7.10 默认自动下载的Java 使用authlib-injector 登录会出现 PKIX path building failed #5252

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
3 tasks done
PAKingdom opened this issue Dec 11, 2024 · 11 comments · May be fixed by #6287
Open
3 tasks done
Labels
· Bug 可合并 已有 Pull Request 处理了该 Issue

Comments

@PAKingdom
Copy link

PAKingdom commented Dec 11, 2024

检查项

  • 我已尝试使用其他启动器,其他启动器没有出现问题。 如果其他启动器也存在问题,证明是网络环境不佳(解决方法),并非 PCL 的问题,请 不要 提交反馈。下载 HMCL
  • 我知晓大多数此类问题都是网络环境不佳导致的,但我确实认为我的问题可能是 PCL 导致的,和网络环境无关。
  • 我已在 Issues 页面常见&难检反馈及问题列表 中搜索,确认了这一 Bug 未被提交过。

描述

此bug在新电脑中完美复现
此问题为PCL2自动下载Java版本为8.0.51导致的错误
提议:

  1. 吧自动下载的Java8版本更换为 8u101+ 或更新
  2. 自动选择Java逻辑更新

问题解决思路:
yushijinhun/authlib-injector#117 (comment)

重现步骤

  1. 随便导入一个1.7.10的整合包(GTNH)
  2. 然后如果电脑没有Java会提示自动下载Java,自动下载的Java为 8.0.51
  3. 使用authlib-injector方式登录 并 启动游戏,进入服务器。由于Java因为SSL错误并未成功登录,服务器会报登入失败:服务器目前正在停机维护

日志与附件

参考:
yushijinhun/authlib-injector#119
实机日志:
.minecraft\authlib-injector.log 可查阅到如下日志
[authlib-injector] [WARNING] Reverse proxy error 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 target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1497) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:212) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282) at sun.net.www.protocol.http.HttpURLConnection.access$100(HttpURLConnection.java:90) at sun.net.www.protocol.http.HttpURLConnection$8.run(HttpURLConnection.java:1249) at sun.net.www.protocol.http.HttpURLConnection$8.run(HttpURLConnection.java:1247) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessController.doPrivileged(AccessController.java:713) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1246) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) at moe.yushi.authlibinjector.httpd.URLProcessor.reverseProxy(URLProcessor.java:192) at moe.yushi.authlibinjector.httpd.URLProcessor.access$400(URLProcessor.java:47) at moe.yushi.authlibinjector.httpd.URLProcessor$1.serve(URLProcessor.java:158) at moe.yushi.authlibinjector.internal.fi.iki.elonen.NanoHTTPD$ClientHandler$$Lambda$38/1153271023.apply(Unknown Source) at moe.yushi.authlibinjector.internal.fi.iki.elonen.HTTPSession.execute(HTTPSession.java:246) at moe.yushi.authlibinjector.internal.fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:104) at java.lang.Thread.run(Thread.java:745) 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 sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1479) ... 24 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:145) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) ... 30 more

@PAKingdom PAKingdom added · Bug 新提交 需要社区初步确认其有效的新提交 labels Dec 11, 2024
@shimoranla
Copy link
Collaborator

shimoranla commented Dec 12, 2024

我觉得要不然用 azul 的 zulu jdk 得了,BakaXL 和 PrismLauncher 就是这样干的,PCL 没道理不能这么做
azul 是个商业公司,应该有能力负担下载流量(

https://cdn.azul.com/zulu/bin/zulu8.82.0.21-ca-jdk8.0.432-win_x64.zip
https://cdn.azul.com/zulu/bin/zulu8.82.0.21-ca-jdk8.0.432-win_i686.zip

Edit:虽然没证据表明 Zulu 比官方稳定但相对的也没证据证明官方的一定比 Zulu 稳定,我 Zulu OpenJDK 用到现在也没见崩游戏的情况,如果只是为了一个理论上存在的兼容性问题而降低用户体验,我个人认为不太值当

@3gf8jv4dv
Copy link
Collaborator

此问题为PCL2自动下载Java版本为8.0.51导致的错误
吧自动下载的Java8版本更换为 8u101+ 或更新

这个 Java 8u51 是从 Mojang 下载的,也不局限于 Minecraft 1.7.10。龙猫曾经的表态:#4455 (comment)

自动选择Java逻辑更新

搜寻了一下,看到了个有类似报错的 issue (#3441),但原因不同——他/她的 Java 版本是 8u351。
这个或许可行,让龙猫做决定罢。

@3gf8jv4dv 3gf8jv4dv added 等待确认 已经过社区确认,等待开发者确认 and removed 新提交 需要社区初步确认其有效的新提交 labels Dec 12, 2024
@LTCatt
Copy link
Member

LTCatt commented Dec 13, 2024

我觉得这应该由 Authlib 那边处理,毕竟 8u51 是 Mojang 官方提供的 Java……不兼容官方 Java 就有点……
yushijinhun/authlib-injector#117 (comment)

@LTCatt LTCatt added 第三方 等待第三方处理,或是由第三方导致 and removed 等待确认 已经过社区确认,等待开发者确认 labels Dec 13, 2024
@shimoranla
Copy link
Collaborator

我觉得这应该由 Authlib 那边处理,毕竟 8u51 是 Mojang 官方提供的 Java……不兼容官方 Java 就有点……

Authlib 大概是不会处理的

@shimoranla
Copy link
Collaborator

稍微看了一下,java 内部独立维护了一个证书库,使用 keytool 管理
理论上只需要使用 keytool 导入证书链就行
但是 keytool 还要求导入时输入证书库密码,默认密码是 changeit,这需要通过 stdin 输进去

@shimoranla
Copy link
Collaborator

抽空看了下 Java 属性参数

似乎只要把这个加到 JVM 参数里面

-Djavax.net.ssl.trustStoreType=WINDOWS-ROOT

就能让 Java 信任系统根证书,或许可以缓解此问题,但我用的皮肤站 8u51 有信任证书,没法验证是否可行

cc @LTCatt

@LTCatt LTCatt added 处理中 开发者正在调查或处理该项 🟨 中 优先度:中 and removed 第三方 等待第三方处理,或是由第三方导致 labels Apr 17, 2025
@wyc-26
Copy link
Contributor

wyc-26 commented May 2, 2025

@PAKingdom 可以麻烦您提供一下使用的皮肤站吗

@PAKingdom
Copy link
Author

@PAKingdom可以麻烦您提供一下使用的皮肤站吗?

Authlib:https://www.mcpa.top/

阁下,感谢您提及我推动此问题。由于已知问题是 8u51 不信任证书导致的,我仍未更换其他 SSL 证书,因此该问题仍可复现

实机日志:
.minecraft\authlib-injector.log
由toptal提供的网络剪切板
其实就是实测了一下仍可复现(无特殊含义)

如果您有需要,下列为我在PCL2另一个ISSUES使用过的测试账号与测试服务器。欢迎测试

测试账号与测试服务器(点击展开)

(以下服务跟随issues状态启用) 我非常愿意提供我力所能及的帮助

Authlib:https://www.mcpa.top/
认证服务器地址:https://www.mcpa.top/api/yggdrasil
(如果需要注册账户请注意有隐藏 reCAPTCHA 请注意浏览器是否能访问 https://recaptcha.net/

测试账户 仅供测试 Authlib-Injector

USERNAME test@test.test
PASSWORD 1qaz2wsx3edc

测试服务器 使用 1.7.10 原版进入
play.mcpa.top:12002

@wyc-26

@wyc-26
Copy link
Contributor

wyc-26 commented May 2, 2025

抽空看了下 Java 属性参数

似乎只要把这个加到 JVM 参数里面

-Djavax.net.ssl.trustStoreType=WINDOWS-ROOT

就能让 Java 信任系统根证书,或许可以缓解此问题,但我用的皮肤站 8u51 有信任证书,没法验证是否可行

cc @LTCatt

试试像楼上所说的,将 -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT 加入 Java 参数?

@PAKingdom
Copy link
Author

PAKingdom commented May 2, 2025

-Djavax.net.ssl.trustStoreType=WINDOWS-ROOT
启动参数可以修复此问题
已实测
考虑在后面的新发行版加入此启动参数吗?不加入我觉得其实可以关闭Issue了?

@shimoranla
Copy link
Collaborator

shimoranla commented May 2, 2025

-Djavax.net.ssl.trustStoreType=WINDOWS-ROOT 启动参数可以修复此问题 已实测 考虑在后面的新发行版加入此启动参数吗?不加入我觉得其实可以关闭Issue了?

正常情况下龙猫包修的(

@LTCatt LTCatt added 可合并 已有 Pull Request 处理了该 Issue and removed 处理中 开发者正在调查或处理该项 🟨 中 优先度:中 labels May 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
· Bug 可合并 已有 Pull Request 处理了该 Issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants