RocketMQ这个问题如何解决?
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.11.3:install-node-and-yarn (install node and yarn) on project rocketmq-dashboard: Could not download Yarn: Could not download https://github.com/yarnpkg/yarn/releases/download/v1.22.10/yarn-v1.22.10.tar.gz: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
在构建RocketMQ Dashboard项目时遇到这个问题,主要是因为Maven在尝试下载Yarn时无法验证HTTPS连接的安全证书,导致下载失败。具体错误信息指出“PKIX路径构建失败”,意味着Java运行环境无法找到一个有效的证书路径来信任目标站点。解决这个问题通常有以下几个步骤:
解决方案
导出证书:首先,你需要从浏览器访问https://github.com,导出其SSL证书。在大多数浏览器中,你可以在页面加载时查看安全证书信息,并从中导出证书。
将证书添加到Java的keystore:使用keytool命令行工具(位于JDK的bin目录下)将证书导入到Java的信任证书库中。命令示例如下:
keytool -importcert -file /path/to/your/certificate.crt -alias githubcertificate -keystore ${JAVA_HOME}/jre/lib/security/cacerts -storepass changeit
这里,/path/to/your/certificate.crt是你的证书文件路径,githubcertificate是你给证书起的别名,${JAVA_HOME}指向你的Java安装目录,changeit是默认的Java keystore密码。如果keystore密码不同,请相应修改。
更新或配置Maven设置以绕过SSL验证(不推荐)
这是一个临时的解决方案,不建议在生产环境中使用,因为它会降低安全性,使你的系统容易受到中间人攻击。
在/.m2/settings.xml文件中,添加以下配置来关闭证书验证:
...
disable-ssl-check
true
true
true
true
...
example-proxy
true
http
your-proxy-host
your-proxy-port
your-username
your-password
请优先考虑第一个解决方案,即添加证书到Java的Keystore,这是最安全、最持久的解决方式。
此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/