gradlew无法找到请求目标的有效认证路径

3

我正在使用Minecraft Forge进行mod制作。对于不知道Forge是什么的人来说,它是一个程序,可以防止mod破坏Minecraft源代码并帮助mod共存。它还包含一个开发工具包,以便Java程序员可以制作自己的mod(我假设您知道Minecraft是什么)。最近我获得了Forge的新版本,并尝试创建一个新的工作空间。然而,每当我在Windows命令提示符中运行以下命令时:

gradlew setupDecompWorkspace

我得到了以下输出:
Downloading https://services.gradle.org/distributions/gradle-2.14-bin.zip

Exception in thread "main" 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 java.base/sun.security.ssl.Alerts.getSSLException(Alerts.java:198)
    at java.base/sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1969)
    at java.base/sun.security.ssl.Handshaker.fatalSE(Handshaker.java:318)
    at java.base/sun.security.ssl.Handshaker.fatalSE(Handshaker.java:312)
    at java.base/sun.security.ssl.ClientHandshaker.checkServerCerts(ClientHandshaker.java:1846)
    at java.base/sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1655)
    at java.base/sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:260)
    at java.base/sun.security.ssl.Handshaker.processLoop(Handshaker.java:1086)
    at java.base/sun.security.ssl.Handshaker.processRecord(Handshaker.java:1020)
    at java.base/sun.security.ssl.SSLSocketImpl.processInputRecord(SSLSocketImpl.java:1137)
    at java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1074)
    at java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
    at java.base/sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1402)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1429)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
    at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1563)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1491)
    at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:236)
    at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
    at org.gradle.wrapper.Download.download(Download.java:44)
    at org.gradle.wrapper.Install$1.call(Install.java:59)
    at org.gradle.wrapper.Install$1.call(Install.java:46)
    at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
    at org.gradle.wrapper.Install.createDist(Install.java:46)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:126)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
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:385)
    at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:290)
    at java.base/sun.security.validator.Validator.validate(Validator.java:264)
    at java.base/sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:343)
    at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:226)
    at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:133)
    at java.base/sun.security.ssl.ClientHandshaker.checkServerCerts(ClientHandshaker.java:1825)
    ... 23 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: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:380)
    ... 29 more

我尝试运行这个命令来解决问题:

gradlew clean

但我收到了完全相同的错误信息!

我的JAVA_HOME变量已设置为C:\Program Files\Java\jdk-9。

编辑:我按照您的建议在gradle属性文件中将https更改为http,实际上它开始工作了。然而,现在我遇到了这个错误:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.gradle.internal.reflect.JavaMethod 
(file:/C:/Users/James/.gradle/wrapper/dists/gradle-2.14-
bin/ahcidmhfbcpw2l6c6ohng55pk/gradle-2.14/lib/gradle-base-services-2.14.jar) 
to method java.lang.ClassLoader.getPackages()
WARNING: Please consider reporting this to the maintainers of 
org.gradle.internal.reflect.JavaMethod
WARNING: Use --illegal-access=warn to enable warnings of further illegal 
reflective access operations
WARNING: All illegal access operations will be denied in a future release
To honour the JVM settings for this build a new JVM will be forked. Please 
consider using the daemon: 
https://docs.gradle.org/2.14/userguide/gradle_daemon.html.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'forge'.
> Could not resolve all dependencies for configuration ':classpath'.
   > Could not resolve org.ow2.asm:asm-debug-all:5.1.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve org.ow2.asm:asm-debug-all:5.1.
     > Could not get resource 'https://jcenter.bintray.com/org/ow2/asm/asm-debug-all/5.1/asm-debug-all-5.1.pom'.
        > Could not GET 'https://jcenter.bintray.com/org/ow2/asm/asm-debug-all/5.1/asm-debug-all-5.1.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve com.google.guava:guava:18.0.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve com.google.guava:guava:18.0.
     > Could not get resource 'https://jcenter.bintray.com/com/google/guava/guava/18.0/guava-18.0.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/com/google/guava/guava/18.0/guava-18.0.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve net.sf.opencsv:opencsv:2.3.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve net.sf.opencsv:opencsv:2.3.
     > Could not get resource 'https://jcenter.bintray.com/net/sf/opencsv/opencsv/2.3/opencsv-2.3.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/net/sf/opencsv/opencsv/2.3/opencsv-2.3.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve com.cloudbees:diff4j:1.1.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve com.cloudbees:diff4j:1.1.
     > Could not get resource 'https://jcenter.bintray.com/com/cloudbees/diff4j/1.1/diff4j-1.1.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/com/cloudbees/diff4j/1.1/diff4j-1.1.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve com.github.abrarsyed.jastyle:jAstyle:1.3.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve com.github.abrarsyed.jastyle:jAstyle:1.3.
     > Could not get resource 'https://jcenter.bintray.com/com/github/abrarsyed/jastyle/jAstyle/1.3/jAstyle-1.3.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/com/github/abrarsyed/jastyle/jAstyle/1.3/jAstyle-1.3.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve net.sf.trove4j:trove4j:2.1.0.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve net.sf.trove4j:trove4j:2.1.0.
     > Could not get resource 'https://jcenter.bintray.com/net/sf/trove4j/trove4j/2.1.0/trove4j-2.1.0.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/net/sf/trove4j/trove4j/2.1.0/trove4j-2.1.0.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve com.github.jponge:lzma-java:1.3.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve com.github.jponge:lzma-java:1.3.
     > Could not get resource 'https://jcenter.bintray.com/com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/com/github/jponge/lzma-java/1.3/lzma-java-1.3.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve com.nothome:javaxdelta:2.0.1.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve com.nothome:javaxdelta:2.0.1.
     > Could not get resource 'https://jcenter.bintray.com/com/nothome/javaxdelta/2.0.1/javaxdelta-2.0.1.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/com/nothome/javaxdelta/2.0.1/javaxdelta-2.0.1.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve com.google.code.gson:gson:2.2.4.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve com.google.code.gson:gson:2.2.4.
     > Could not get resource 'https://jcenter.bintray.com/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve com.github.tony19:named-regexp:0.2.3.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve com.github.tony19:named-regexp:0.2.3.
     > Could not get resource 'https://jcenter.bintray.com/com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/com/github/tony19/named-regexp/0.2.3/named-regexp-0.2.3.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve org.apache.httpcomponents:httpclient:4.3.3.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve org.apache.httpcomponents:httpclient:4.3.3.
     > Could not get resource 'https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not resolve org.apache.httpcomponents:httpmime:4.3.3.
 Required by:
     :forge:unspecified > net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT
  > Could not resolve org.apache.httpcomponents:httpmime:4.3.3.
     > Could not get resource 'https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.3.3/httpmime-4.3.3.pom'.
        > Could not HEAD 'https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.3.3/httpmime-4.3.3.pom'.
           > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 48.897 secs

看起来又出现了“无法找到有效的证书路径到请求的目标”的错误。我尝试使用了许多不同版本的命令,例如:

gradlew setupDecompWorkspace --refresh-dependencies

gradlew setupDecompWorkspace eclipse

gradlew setupDecompWorkspace eclipse --refresh-depencencies

这些都导致了相同的构建失败。有什么建议吗?

看起来你需要在信任存储库中注册SSL证书。请参考此答案https://dev59.com/gGw05IYBdhLWcg3weBvu - bated
我的计算机上是否有一个主要的SSL证书,我总是使用它,还是我必须从GoDaddy或Verisign等网站中选择一个证书?如果我必须选择一个,哪些证书建议用于这种项目?另外,我如何注册该证书,我可以通过命令提示符执行吗? - Harold Meeker
这是你的答案 --> http://www.minecraftforge.net/forum/topic/29280-solved-issues-setting-up-forge-18/ - bated
2个回答

2

可能是因为使用了过时的Java版本,没有最新的SSL证书。请参考此帖子


0

我曾经在Eclipse中创建Gradle项目时遇到类似问题,并通过勾选“[v] 覆盖工作区设置”,然后单击 (*) 指定的Gradle版本4.3.1,在"Gradle用户主目录"手动设置Gradle 4.3.1存储在硬盘上的位置,最后点击“[v] 离线模式”成功克服了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接