- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在打包一个使用 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/
我正在向 Java keystore 添加证书,但收到以下警告。命令成功。 keytool -import -trustcacerts -keystore /usr/lib/jvm/java-11-o
我如何确保我导入到 cacert 的证书 (myAppCertificate.crt) 已经存在于 cacert 文件中?有关信息,我正在使用 导入证书 keytool -import -alias
我是 Mercurial 的新手。我创建了一个 Bitbucket 帐户,创建了一个新的私有(private)存储库,然后尝试使用该存储库进行克隆。我收到此错误:中止:找不到 web.cacerts:
我正在与供应商的设备合作,他们使用默认的 Java cacert 来添加证书以允许自签名证书。在处理此过程时,我注意到 cacert 使用默认密码 changeit 为了提高安全性,我想更改 cace
我有一个从我的 CAS 服务器重定向到的 Web 应用程序。但我得到了这个异常(exception): javax.net.ssl.SSLHandshakeException: sun.securit
我已经在 CACert 注册为我的域 example.com 获取受信任的证书,当我想在 CACert 控制面板中添加域时,我必须选择用于该域的电子邮件地址: CACert 常见问题解答指出,目前除了
我的要求是将 Maven 存储库的证书导入全局 keystore 。 证书文件名为 maven-cacert.cer 。 我正在使用 C:\Program Files\Java\jdk1.6.0_20
我的程序中有一些代码设置套接字连接,然后写入远程服务器。 //Get Socket, set timeout, and initialize I/O streams S
我已将Java安装到Windows环境下的默认文件夹中。 但是,我没有管理员访问权限。如何将安全证书添加到 jre/lib/security 路径中的 cacerts 文件中?如果无法编辑此文件,我可
我现在使用devstack安装openstack,但不幸的是,我遇到了一个问题: /home/my/devstack/tools/create_userrc.sh -PA --target-dir /
我需要向 JRE 随附的 cacerts 添加受信任的证书,但我对客户的 JRE 安装没有控制权或所有权。除了假定 cacerts 文件的文件路径位置并将其读入自定义 TrustManager 之外,
我目前认为 cacert.pem 是一组 key ,我可以使用它们来检查我正在与之交谈的网站是否确实是它声称的网站。因此,如果我向某人发送依赖于 cacert.pem 的程序,我可以向他们发送我计算机
客户向我提供了一个用于服务调用的 HTTPS URL。我需要向该 URL 发出请求。我知道如果该 URL 的证书来自一个普通的提供者,那么它很可能已经在默认的 java truststore cace
我有 JAVA_HOME=C:\Users\myuser\jdk1.8.0_65 Eclipse 中的 JRE 系统库指向 C:\Users\myuser\jdk1.8.0_65 java -vers
在我的 Spring boot 应用程序中,我需要调用另一台服务器上的 API (GET: https://anotherserver.com/api)。服务器管理员给了我一个名为 cacerts(无
在我的 PayPal Pro 支付页面中,我使用带有以下选项的 cURL 函数 curl_setopt_array():cUIn CURLOPT_CAINFO => dirname(__FILE__)
我已经 root 了我的 Android (4.0.4) 手机并安装了一个应用程序来代理通过我的计算机的所有 HTTP 流量。这工作正常,我可以查看和修改所有 HTTP 请求。但是 HTTPS 流量不
我正在尝试通过 https 连接到使用非官方 CA 的网站。由于某种原因,它适用于 curl 但不适用于 python 请求。 请参阅下面的示例 Python 3.8.0 (default, Oct
我知道我可以使用 keytool -delete -alias alias -keystore .keystore 从证书存储中删除一些证书。但是我有 109 个证书存储在 cacerts 中:key
我正在使用 OpenJDK 8(从 https://jdk.java.net/java-se-ri/8 下载并解压,添加到 PATH),并且遇到了证书错误。 经过调查,我意识到 cacerts 存在问
我是一名优秀的程序员,十分优秀!