开发者社区 问答 正文

官网上下载rocketmq源码,打包时 报错, No trusted certificate

详细报错信息如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process (process-resource-bundles) on project rocketmq-all: Error downloading resources archive.: Could not transfer artifact org.apache:apache-jar-resource-bundle:jar:1.4 from/to alimaven-central (http://maven.aliyun.com/nexus/content/repositories/central/): sun.security.validator.ValidatorException: No trusted certificate found [ERROR] org.apache:apache-jar-resource-bundle:jar:1.4 [ERROR] [ERROR] from the specified remote repositories: [ERROR] apache.snapshots (https://repository.apache.org/snapshots, releases=false, snapshots=true), [ERROR] alimaven-central (http://maven.aliyun.com/nexus/content/repositories/central/, releases=true, snapshots=false) [ERROR] -> [Help 1]

打包步骤: 1、官网下载源码,导入IDEA中; 2、使用命令打包,报错;

在百度找过该问题,均没有解决,还请社区里的大佬看看 。 问题应该是很简单的,自己没有找到对的办法,谢谢啦。

展开
收起
frank111 2019-10-07 21:39:42 794 分享 版权
阿里云 AI 助理回答

遇到这个问题,通常是因为Maven在尝试从远程仓库下载资源时,遇到了SSL证书验证失败的问题。具体来说,错误信息中的No trusted certificate found表明Maven不信任与阿里云Maven仓库通信时所用的SSL证书。解决这个问题,你可以尝试以下几个步骤:

1. 添加阿里云Maven仓库的HTTPS URL

首先,确保你的settings.xml或项目的pom.xml文件中配置的是阿里云Maven仓库的HTTPS URL而非HTTP。因为HTTPS提供了更好的安全性,并且现代SSL证书管理对HTTPS更为友好。修改为如下配置:

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>https://maven.aliyun.com/repository/public</url>
  <!-- 注意这里改成了https -->
  <mirrorOf>central</mirrorOf>
</mirror>

2. 更新或配置Java的cacerts信任库

如果使用的是HTTPS并且仍然遇到证书问题,可能需要手动添加或更新Java的信任证书库(cacerts)。这个文件通常位于JAVA_HOME/jre/lib/security/cacerts

  • 检查现有证书:可以使用keytool -list -keystore cacerts命令查看当前信任的证书列表,看看是否缺少必要的根证书。

  • 导入证书:如果阿里云的证书不在信任库中,你需要从网站获取其证书并导入到cacerts。这通常涉及访问网站,导出其证书,然后使用keytool命令行工具将其导入。但这种方法较为复杂,且对于大多数用户不是首选方案。

3. 禁用证书验证(不推荐)

作为临时解决方案,你可以在运行Maven时禁用证书验证,但这会降低安全性,不建议在生产环境或长期使用:

mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

4. 使用公司内部或自签名证书

如果你的网络环境有特殊的CA或者使用了自签名证书,请确保这些证书也被正确安装到了Java的信任库中。

总结

推荐首先尝试前两个步骤,尤其是切换到HTTPS并检查或更新信任库。这不仅解决了当前问题,也提高了构建过程的安全性。避免长期使用禁用证书验证的方法。如果问题依旧,可能需要更详细地检查网络设置或联系网络管理员。

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