我手动将一些新证书添加到 /etc/pki/ca-trust/extracted/java/cacerts
中,它使 Java 信任这些证书,因为 Java 配置为使用此证书位置。但是,根据我正在阅读的内容,要正确执行此操作并确保此更改在未来的证书系统更新中仍然存在,应该这样做:
- 添加到
/etc/pki/ca-trust/source/anchors
- 运行
update-trust-ca
但是,这不起作用,即来自源 anchor 的证书不会传输到 Java cacerts
。
此处讨论的建议解决方案 https://access.redhat.com/discussions/3018271是首先运行“信任 anchor /etc/pki/ca-trust/source/anchors/*.cer”,但随后我得到“p11-kit:无法创建对象:该字段是只读的”。 如何修复此错误?如何继续?
系统:
cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
Java:
java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
最佳答案
我也遇到了同样的问题。
- 我将 2 个证书放入/etc/pki/ca-trust/source/anchors 并运行 update-ca-trust。只有一个转到/etc/pki/ca-trust/extracted/java/cacerts, CA。服务器的证书将被忽略。 当我将选项 -v 添加到最后一行的 update-ca-trust 时,我得到:
(p11-kit:21017) extract_certificate: skipping certificate that doesn't match trust flags
使用信任 anchor cert.pem
我也有同样的情况。
- 我将这 2 个证书放入/etc/pki/tls/certs 中,并运行命令
trust anchor cert.pem
。我得到文件:/etc/pki/ca-trust/source/domain(from CN).p11-kit。我正在根据这个https://access.redhat.com/discussions/3018271修改这个文件。我再次运行 update-ca-trust。 之后,我也可以在 /etc/pki/ca-trust/extracted/java/cacerts 中找到我的证书。
对于实验,我取消了该行的注释:
#set -vx
来自 update-ca-trust。当您运行命令 trustanchor cert.pem
时,最后会调用命令 update-ca-trust
。
我不知道为什么我无法将这些文件保存在/etc/pki/ca-trust/source/anchors,为什么 update-ca-trust 忽略证书类别:其他-条目。
关于java - 在 Unix 上从 PKI 源 anchor 更新 Java 信任证书存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61099586/