开发者社区 问答 正文

阿里云Maven仓库证书问题 PKIX path building failed

使用gradle编译的,配置的阿里云的镜像。 阿里云网站的证书也导入到$JAVA_HOME/jre/lib/security/cacerts里了 但是还是报如下错误:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':core'.
> Could not resolve all files for configuration ':core:scoverage'.
   > Could not download scalac-scoverage-plugin_2.11.jar (org.scoverage:scalac-scoverage-plugin_2.11:1.3.1)
      > Could not get resource 'https://maven.aliyun.com/repository/public/org/scoverage/scalac-scoverage-plugin_2.11/1.3.1/scalac-scoverage-plugin_2.11-1.3.1.jar'.
         > Could not GET 'https://maven.aliyun.com/repository/public/org/scoverage/scalac-scoverage-plugin_2.11/1.3.1/scalac-scoverage-plugin_2.11-1.3.1.jar'.
            > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
   > Could not download scalac-scoverage-runtime_2.11.jar (org.scoverage:scalac-scoverage-runtime_2.11:1.3.1)
      > Could not get resource 'https://maven.aliyun.com/repository/public/org/scoverage/scalac-scoverage-runtime_2.11/1.3.1/scalac-scoverage-runtime_2.11-1.3.1.jar'.
         > Could not GET 'https://maven.aliyun.com/repository/public/org/scoverage/scalac-scoverage-runtime_2.11/1.3.1/scalac-scoverage-runtime_2.11-1.3.1.jar'.
            > 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 --info or --debug option to get more log output. Run with --scan to get full insights.

展开
收起
香山上的麻雀 2020-12-10 10:47:02 1832 分享 版权
阿里云 AI 助理回答

遇到这个问题,通常意味着Java运行时环境(JRE)无法验证阿里云Maven仓库的SSL证书。尽管您已经将证书导入到$JAVA_HOME/jre/lib/security/cacerts,但仍然出现此错误,可能是因为以下原因:

  1. 证书导入不正确:确保您正确地将阿里云的CA证书导入到了Java的信任存储中,并且没有遗漏或错误。可以使用keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts命令检查证书是否已成功导入。

  2. 使用的Java环境问题:有时候,系统中可能存在多个Java版本或不同的Java环境变量设置,导致您的构建实际上并未使用您认为的那个Java环境。请确认Gradle执行时确实使用了包含已导入证书的JRE。

  3. 证书链问题:如果阿里云的证书是由一个根证书签发的,而这个根证书不在信任库中,也会导致该问题。需要确保整个证书链都已被导入。

  4. 时间同步问题:系统时间与现实时间差异过大也可能导致SSL验证失败。请检查并同步您的系统时间。

  5. 特定于Gradle的配置:在您的build.gradle文件或者全局的gradle.properties中,确保正确的仓库URL被使用,并且代理设置(如果有)是正确的。例如,确认Alibaba Cloud Maven Repository的镜像地址配置无误。

解决步骤建议:

  • 重新检查和导入证书:使用keytool命令再次确认证书是否正确导入。
  • 验证Java路径:确认Gradle使用的确实是预期的Java安装路径,可以通过在命令行中输入java -version来检查。
  • 清理并重试:尝试清理Gradle的缓存(通过gradle clean命令),然后重新构建项目。
  • 详细日志查看:如错误提示所示,使用--info--debug选项运行Gradle以获取更详细的日志输出,这有助于定位问题所在。
  • 检查网络环境:如果在公司内部网络或特殊网络环境下,可能需要配置代理服务器访问外网资源。

如果以上步骤都无法解决问题,可能需要进一步检查网络配置、防火墙设置或考虑是否存在其他安全软件阻止了SSL连接。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答