gpt4 book ai didi

java - 提供自定义 trusstore 时,Maven 不使用系统 keystore

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:13 24 4
gpt4 key购买 nike

我们正在使用使用自签名 SSL 证书的私有(private) Maven 存储库。我们遵循了 Maven official documentation 中的指南,它告诉您将您的 CA 证书放入自定义信任库中,然后告诉 Maven 使用它,例如使用环境变量 MAVEN_OPTS:MAVEN_OPTS="-Xmx512m -Djavax.net.ssl.trustStore=trust.jks -Djavax.net.ssl.trustStorePassword=XXX

这确实修复了访问我们私有(private)仓库的 SSL 错误,但是现在 maven 找不到访问 Maven Central 的证书!似乎提供自定义信任库会自动禁用公共(public)存储库的系统证书。

Another very popular SO question提供了一个解决方法,但对我来说禁用 SSL 不是解决方案。

我希望提供自定义证书只会增加来自系统的证书。

我们考虑过将所有系统信任的证书添加到自定义信任库,但认为这是一个乏味的解决方案。

最佳答案

不幸的是,您不能将多个信任库(自定义 + 系统)传递给 javax.net.ssl.trustStore。当一个信任库被传递给那个属性时,它基本上会忽略系统的,所以你有两个选择:

  1. 将所有系统信任的证书添加到您的自定义信任库(很麻烦,但只是一次性或很少见的操作)
  2. 获取由公共(public) CA 签名的证书。例如,您可以从 https://letsencrypt.org/ 获得免费证书(它是一个受信任的公共(public) CA,我有没有提到它是免费的?)。 let's encrypt 的唯一缺点是证书的有效性,目前他们只颁发 3 个月的证书。

关于java - 提供自定义 trusstore 时,Maven 不使用系统 keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59178773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com