gpt4 book ai didi

websphere-liberty - 使用默认 Java 信任库 (cacerts) 打包自由应用程序的最佳方式

转载 作者:行者123 更新时间:2023-12-02 00:25:04 25 4
gpt4 key购买 nike

我正在打包一个使用 Db2 的 liberty 应用程序。当我们在本地运行时,我们配置证书以保护从应用程序到数据库的连接。

现在我正在尝试打包同一个应用程序以用于 Db2 on Cloud 服务,但我在 SSL 配置方面遇到了问题。

我想我可以创建一个信任库并将 digicert 根 CA 添加到其中并将其与应用程序打包,但我倾向于只使用 JDK 的内置 cacerts(因为我们也有限制性防火墙规则阻止出站连接给其他主机)。

我在 https://github.com/OpenLiberty/open-liberty/issues/4377 找到了非常相关的讨论,但我似乎找不到以可移植方式指定 JDK 的 cacert 存储路径的好方法。

我试过如下设置: <keyStore id="defaultKeyStore" location="${env.JAVA_HOME}/jre/lib/security/cacerts"/>

但出于某种原因,它没有解析环境变量。为什么?

此外,这仅在 JAVA_HOME 设置为 JDK 时有效(如在开发中)。在我们的容器中,我们没有那个,所以我们不想要 jre路径的一部分。

告诉 Liberty 仅使用 JDK 的默认信任库(以可移植的方式)的最简单/最容易的方法是什么?

最佳答案

更新:2020 年 2 月 9 日:

从 19.0.0.12 版 Liberty 开始,您可以使用以下 xml 获得相同的效果:

<ssl id="defaultSSLConfig" trustDefaultCerts="true" />

这是在默认服务器模板中设置的,所以新服务器默认会有这个。以前的答案仍然有效。


上一个答案:

我昨天才这样做,我的建议是这样的配置:

<ssl id="defaultSSLConfig" trustStoreRef="myTrustStore"/>

<keyStore id="myTrustStore" location="${java.home}/lib/security/cacerts" password="changeit" />

在我的例子中,我使用 https 入站到我的 Liberty 服务器,使用生成的自签名证书(我正在做开发测试),如果我设置 defaultKeyStore 指向 cacerts 入站 ssl 被破坏,因为它不包含服务器证书我可以用。相反,我只是更新了默认的 ssl 配置,以将 cacerts 用作信任库,并将 keystore 保持原样。

我使用 ${java.home} 因为它会一直存在(除非 Java 摆脱这个系统变量,但我怀疑情况不会总是这样)。 Liberty 的服务器脚本有多种计算 Java 位置的方法,因此它不需要 JAVA_HOME 作为环境变量。我猜你的情况下 JAVA_HOME 没有设置为环境变量,但系统属性将始终存在。

关于websphere-liberty - 使用默认 Java 信任库 (cacerts) 打包自由应用程序的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54044281/

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