【问题标题】:How to add Certificate Authority file in CentOS 7如何在 CentOS 7 中添加证书颁发机构文件
【发布时间】:2024-01-17 02:38:01
【问题描述】:

我正在尝试将证书颁发机构 (CA) 文件名 - ca.crt 添加到 /etc/ssl/certs,为此我关注了 this article

我将ca.crt 文件复制到/etc/pki/ca-trust/source/anchors/ 并运行以下命令;

update-ca-trust extract

之后我检查了/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt 文件,但没有找到我的CA。

我无法弄清楚可能是什么问题。

我做错了什么,我该如何解决?

【问题讨论】:

    标签: ssl-certificate ca


    【解决方案1】:

    在里面复制你的证书

    /etc/pki/ca-trust/source/anchors/
    

    然后运行以下命令

    update-ca-trust
    

    【讨论】:

    • update-ca-trust 没有提供我可以辨别的输出,所以我能够说服自己它实际上在做任何事情的唯一方法是在运行命令之前保留原始 /etc/pki/tls/certs/ca-bundle.crt 的副本并将其与运行update-ca-trust 后生成的新版本进行比较。
    • 感谢 shalamus,它也解决了我的问题
    【解决方案2】:

    找到*.pem 文件并将其放入anchors 子目录,或者只是将*.pem 文件链接到那里。

    yum install -y ca-certificates
    update-ca-trust force-enable
    sudo ln -s /etc/ssl/your-cert.pem /etc/pki/ca-trust/source/anchors/your-cert.pem
    update-ca-trust
    

    【讨论】:

    • update-ca-trust 似乎没有接受任何参数。至少不是 CentOS 7.9 (ca-certificates-2021.2.50-72.el7_9.noarch) 中提供的那个。不确定update-ca-trust force-enable 应该在这里做什么。
    【解决方案3】:

    您的 CA 文件必须是二进制 X.509 格式而不是 Base64 编码;它需要是常规的 DER 或 PEM 才能成功添加到服务器上的受信任 CA 列表中。

    要继续,请将您的 CA 文件放在您的 /usr/share/pki/ca-trust-source/anchors/ 目录中,然后运行下面的命令行(根据您的设置,您可能需要 sudo 权限);

    # CentOS 7, Red Hat 7, Oracle Linux 7
    update-ca-trust
    

    请注意,/usr/share/pki/ca-trust-source/anchors/ 目录中可用的所有信任设置的解释优先级低于/etc/pki/ca-trust/source/anchors/ 目录下的设置,后者可能采用扩展的 BEGIN TRUSTED 文件格式。

    对于 Ubuntu 和 Debian 系统,/usr/local/share/ca-certificates/ 是用于此目的的首选目录。

    因此,您需要将 CA 文件放在 /usr/local/share/ca-certificates/ 目录中,然后通过运行以下命令行(在需要时使用 sudo 权限)来更新受信任的 CA;

    update-ca-certificates
    

    【讨论】:

      【解决方案4】:

      快速帮助 1:将简单 PEM 或 DER 文件格式的证书添加到系统上受信任的 CA 列表中:

      • 将其作为新文件添加到目录 /etc/pki/ca-trust/source/anchors/

      • 运行 update-ca-trust 提取

      快速帮助 2:如果您的证书采用扩展的 BEGIN TRUSTED 文件格式(可能包含不信任/黑名单信任标志,或用于 TLS 以外用途的信任标志),则:

      • 将其作为新文件添加到目录 /etc/pki/ca-trust/source/
      • 运行 update-ca-trust 提取

      更多详细信息见man update-ca-trust

      【讨论】:

      • 您的解决方案是复制/粘贴文件 /etc/pki/ca-trust/source/README
      【解决方案5】:

      完整说明如下:

      1. 从 PFX 中提取私钥

      openssl pkcs12 -in myfile.pfx -nocerts -out private-key.pem -nodes

      1. 从 PFX 提取证书

      openssl pkcs12 -in myfile.pfx -nokeys -out certificate.pem

      1. 安装证书

      yum install -y ca-certificates,

      cp your-cert.pem /etc/pki/ca-trust/source/anchors/your-cert.pem,

      update-ca-trust,

      update-ca-trust force-enable

      希望有用

      【讨论】:

        【解决方案6】:

        也许迟到了,但就我而言,它是 RHEL 6.8

        将主机发出的certificate.crt复制到:

        /etc/pki/ca-trust/source/anchors/
        

        然后:

        update-ca-trust force-enable (ignore not found warnings)
        update-ca-trust extract
        

        希望对你有帮助

        【讨论】: