gpt4 book ai didi

java - 在 JAVA_OPTS PCF 中使用 URL 并将其解析为 -Djavax.net.ssl.trustStore=

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

我正在部署一个通过 SSL 连接与第三方应用程序连接的应用程序。为此,我之前使用了这些证书并将它们保存在构建包中并从那里挑选它们。现在由于生产版本数量有限,我需要外部化 SSL 证书。到目前为止,我已经外部化了从 jre/lib/security/wasadm. via a SSLConnectionFactory. 中挑选的证书。但是有一些证书是 cacert 的一部分,需要从 JAVA_OPTS 中挑选。在 PCF 上作为环境变量,如 -Djavax.net.ssl.trustStore=<URL to a Path on Server>

如何使用 -D or JAVA_OPTS以便从那里检索 trustStore。

Jdk -> 1.7xx
Target Environment -> PCF
environment OS -> Linux

在此感谢任何帮助。

最佳答案

keeping them in the build pack and pick them from there.

如果可能的话,不要这样做。它要求您 fork 构建包,这很糟糕。它会给您带来维护负担,并会降低您向 Cloud Foundry 上运行的应用程序部署更新和安全补丁的能力。

But there are some certs which are part of cacert and needs to be picked from the JAVA_OPTS on PCF as environment variable like -Djavax.net.ssl.trustStore=

我不确定为什么你会被迫走这条路。 -Djavax.net.ssl.trustStore 选项只是为 JVM 设置默认信任库。它有时很方便,但也有缺点。

当您需要信任不是由知名 CA 签名的证书时,我建议您创建自己的特定于应用程序的信任库,而不是将更多证书添加到 JVM 的默认信任库。

如果您的应用程序不依赖于系统特定的自定义设置(例如修改默认信任库),那么它的可移植性会更高。更改默认信任库也有问题,因为在 JVM 中运行的所有内容都使用它。如果您只是添加到默认信任库,这通常是可以的,但如果您试图从中删除,您可能最终会破坏其他代码。此外,如果您使用自己的信任库,则可以仅包含您的应用或应用中的特定服务所需的最少数量的证书(因为您可以通过这种方式使用多个信任库)。

我不知道您使用的是什么 HTTP 客户端,但是有一个使用 HTTPClient 执行此操作的好示例 here .请参阅自定义 SSL 上下文示例。

除此之外,如果您真的想调整在 Cloud Foundry 上运行您的应用程序的 JVM 的默认信任存储,您只需修改应用程序的 JAVA_OPTS 环境变量并重新加载。

例如:

cf set-env my-cool-app JAVA_OPTS '-Djavax.net.ssl.trustStore=path/to/my/new/default-truststore.jks'

我相信您可以使用指向您的信任库的相对路径,就像您将它与您的应用程序捆绑在一起一样。如果不是,/home/vcap/app 是 JAR/WAR 文件根目录的路径,所以如果您需要完整路径,可以插入它。它需要是容器上的本地路径,但我认为 JVM 不支持远程路径/URL。

Jdk -> 1.7xx

你真的需要升级:)

关于java - 在 JAVA_OPTS PCF 中使用 URL 并将其解析为 -Djavax.net.ssl.trustStore=<url>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50389794/

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