解决Maven的unable to find valid certification path to requested target错误

今天我在从公司的Maven私库上下载依赖时,Maven报出了 unable to find valid certification path to requested target
的问题,经查询是因为没有将私库使用的自签名证书导入到Java的keystore。这里写一下我解决的过程,方便发生了同样问题的人参考。

首先使用这个命令得到网站上面的证书:

# 注意将mavenrepository.mycompany.com替换成实际的地址
openssl s_client -showcerts -connect mavenrepository.mycompany.com:443

在输出中可以看到类似这样的证书信息:

s:/C=US/ST=North Carolina/L=Raleigh/O=Red Hat, Inc./OU=Red Hat Network/CN=Entitlement Master CA/[email protected]

i:/C=US/ST=North Carolina/L=Raleigh/O=Red Hat, Inc./OU=Red Hat Network/CN=Entitlement Master CA/[email protected]

我们要在这里面寻找 issuer(i:)
subject(s:)
相同的证书,这个就是我们要导出的根证书。找到之后,保存证书的哈希(即以 —–BEGIN CERTIFICATE—–
开始,以 —–END CERTIFICATE—–
结束的这部分内容)到一个文件中,比如 root.crt

接下来,我们需要使用 keytool
把这个证书导入到Java的keystore中,命令如下:

sudo keytool /
    -importcert /
    # keystore文件位置需要修改成实际的位置
    -keystore /usr/local/java/jdk1.8.0_60/jre/lib/security/cacerts /
    # keystore密码需要修改成实际的密码,默认密码是changeit
    -storepass changeit /
    # 要导入的证书,就是刚才保存的那个,注意使用实际的位置
    -file ~/Downloads/root.crt /
    # 给证书起个名字
    -alias "mavenrepository-mycompany"

执行后keytool会询问是否信任这个证书,输入 yes
来信任。

导入完成后,Maven就可以从这个私库下载依赖了。如果你使用IDEA的话,那么可能需要重新启动一下IDEA才会使新的keystore生效。

原文 

https://www.boris1993.com/tools/maven/maven-unable-to-find-valid-certification-path-to-requested-target.html

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 解决Maven的unable to find valid certification path to requested target错误

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址