- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我必须说我不是 Java 开发人员,而是系统管理员。
我想当一个 Java 进程启动时没有 javax.net.ssl.trustStore
和 javax.net.ssl.keyStore
属性,其 $JAVA_HOME/jre/lib/security/cacerts
中的证书总是被加载和使用。
但是我发现一个 JBoss war 加载了另一个 keystore 并忽略了默认 cacerts 中的证书。
问题是 PKIX 典型错误消息
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
但我确信所需的证书在默认的 cacerts 中。
javax.net.debug=all
阐明这个问题,发现另一个 keystore 已加载——一个具有旧的过期证书,我不知道。
最佳答案
不,当加载新的 keystore 时,默认情况下不会替换/丢弃以前加载的证书。
Java 在内部处理 keystore ,就像您在 Word 中打开文档一样:您可以打开/加载 keystore 、检索证书、删除证书、添加新证书,当然还可以在修改后保存整个 keystore 。
执行 HTTPS 调用时,您可以指定一个 TrustManager,此 TrustManager 保存对已加载 keystore 的引用。
由于只是用自定义 keystore 替换默认 keystore ,因此 Java 将仅考虑自定义 keystore 。
您还可以同时使用 keystore 、默认的 Java keystore 和自定义 keystore ,如 this answer 中所示(使用两个链接的 TrustManager 实例)。
或者,开发人员可以修改内存中加载的 keystore 并从 Java 默认存储中添加证书。
如您所见,Java 程序如何处理这种情况取决于开发人员。
关于java - 如何将 SSL 证书加载到(或从中删除)Java 进程的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71036966/
这个问题在这里已经有了答案: Is a moved-from vector always empty? (4 个答案) 关闭 4 年前。 从 std::vector move 数据后,它的容量是否必
我是一名优秀的程序员,十分优秀!