在IntelliJ IDEA中为自定义(私有)Maven存储库添加证书

1l5u6lss  于 12个月前  发布在  IntelliJ IDEA
关注(0)|答案(1)|浏览(203)

我最近建立了一个Artifactory存储库,并使用SSL证书对其进行保护。它不是自签名的,但大多数操作系统都预装了它,而JRE没有。
问题是,在Maven Repositories Preferences窗口(IntelliJ Preferences > Build,Execution,Deployment > Build Tools > Maven > Repositories)中包含我的服务器的记录在按下Update按钮时出错。以下是idea.log的摘要:

Caused by: java.lang.RuntimeException: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
    ... 57 more

因此,我尝试将根证书添加到IntelliJ的服务器证书(IntelliJ首选项>工具>服务器证书)并重新启动IntelliJ,但错误仍然存在。
以前有没有人遇到过这样的问题?
我的首选项窗口的屏幕截图:

t8e9dugd

t8e9dugd1#

您可以创建一个自定义的信任库,将您的证书导入其中,并让您的JVM使用它。
创建您的信任库:

keytool -genkey -alias "yourtruststore" -keyalg "RSA" -keystore "/path/to/your/truststore.jks"

导入您的证书:

keytool -import -alias "your-certificate" -file "your-certificate.cer" -keystore "/path/to/your/truststore.jks" -storepass "changeit"

让你的JVM使用它,通过VM选项:

"-Djavax.net.ssl.trustStore=/path/to/your/truststore.jks" \
-Djavax.net.ssl.trustStorePassword=changeit

在IntelliJ IDEA中:文件|设置|构建、执行、部署|构建工具|Maven|跑步者:

相关问题