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

问题描述 投票:0回答:1

我最近设置了一个 Artifactory 存储库并使用 SSL 证书保护它。它不是自签名的,但虽然大多数操作系统都预装了它,但 JRE 却没有。

问题是,在 Maven 存储库首选项窗口(IntelliJ 首选项 > 构建、执行、部署 > 构建工具 > Maven > 存储库)中包含我的服务器的记录在按下更新按钮时出现错误。这是来自

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,但错误仍然存在。

其他人之前有遇到过这样的问题吗?

我的首选项窗口的屏幕截图:

maven ssl intellij-idea repository
1个回答
0
投票

您可以创建自定义信任库,将证书导入其中并让 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"

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.