java - 在 Unix 上从 PKI 源 anchor 更新 Java 信任证书存储

标签 java unix certificate pki trust

我手动将一些新证书添加到 /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)

最佳答案

我也遇到了同样的问题。

  1. 我将 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/

    相关文章:

    java - 在 Android webview 中显示 Unicode 字符

    java - 数据结构 : Which should I use for these conditions?

    linux - 有人可以识别这个 unix 命令吗?

    linux - 尝试在 sed 中打印每行的一部分

    mosquitto 1.2.1/1.2.2 中的 CA 证书的 SSL 证书失败

    java - 企业 GWT 应用程序是否需要额外的客户端-服务器传输?

    java - 在 Java 中同步共享静态对象的正确方法是什么?

    python - Caffe:快完成了,但卡在最后一步

    提供中间 CA 证书的 Python SSL 服务器

    C# : How can I retrieve the "personal" certificates installed on a remote computer