开发者社区 > 云原生 > 云消息队列 > 正文

RocketMQ这个问题如何解决?

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

展开
收起
嘟嘟嘟嘟嘟嘟 2024-08-13 23:11:25 69 0
1 条回答
写回答
取消 提交回答
  • 在构建RocketMQ Dashboard项目时遇到这个问题,主要是因为Maven在尝试下载Yarn时无法验证HTTPS连接的安全证书,导致下载失败。具体错误信息指出“PKIX路径构建失败”,意味着Java运行环境无法找到一个有效的证书路径来信任目标站点。解决这个问题通常有以下几个步骤:
    解决方案

    1. 添加信任证书到Java Keystore
      如果你的企业内部网络或特定环境使用了自签名的SSL证书,你需要将该证书添加到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密码不同,请相应修改。

    1. 更新或配置Maven设置以绕过SSL验证(不推荐)
      这是一个临时的解决方案,不建议在生产环境中使用,因为它会降低安全性,使你的系统容易受到中间人攻击。
      在/.m2/settings.xml文件中,添加以下配置来关闭证书验证:

      ...

      disable-ssl-check
    
        true
    
    
        true
        true
        true
    

    ...

    1. 检查网络和代理设置
      确保你的网络环境没有阻止对GitHub的访问,或者如果你使用了代理服务器,需要正确配置Maven的代理设置,在settings.xml中添加代理配置:
    example-proxy
    true
    http
    your-proxy-host
    your-proxy-port
    
    your-username
    your-password
    

    请优先考虑第一个解决方案,即添加证书到Java的Keystore,这是最安全、最持久的解决方式。

    此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2024-08-14 08:19:19
    赞同 1 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载