第 5 章 使用共享系统证书

共享的系统证书存储使NSS、GnuTLS、OpenSSL和Java能够共享一个默认的来源来检索系统证书锚和块列表信息。默认情况下,信任存储包含Mozilla CA列表,包括正向和负向信任。系统允许更新核心Mozilla CA列表或选择其他证书列表。

5.1. 全系统的信托存储

在 Red Hat Enterprise Linux 中,合并的全系统信任存储位于/etc/pki/ca-trust//usr/share/pki/ca-trust-source/目录中。在/usr/share/pki/ca-trust-source/中的信任设置的优先级低于/etc/pki/ca-trust/中的设置。

证书文件根据安装到以下目录的子目录来处理。

  • 为信任锚

    • /usr/share/pki/ca-trust-source/anchors/ or
    • /etc/pki/ca-trust/source/anchors/
  • 对于不信任的证书

    • /usr/share/pki/ca-trust-source/blacklist/
    • /etc/pki/ca-trust/source/blacklist/
  • 对于扩展的 BEGIN TRUSTED 文件格式中的证书。

    • /usr/share/pki/ca-trust-source/ or
    • /etc/pki/ca-trust/source/
注意

在分层密码系统中,信任锚是一个其他各方认为值得信赖的权威实体。在X.509架构中,根证书是一个信任锚,从这个信任锚中衍生出一条信任链。要实现链式验证,信任方必须先接入信任锚。

5.2. 添加新证书

要用新的信任源来确认系统上的应用程序,请将相应的证书添加到系统范围的存储中,并使用update-ca-trust命令。

先决条件

  • 系统中存在ca-certificate包。

流程

  1. 要在简单的 PEM 或 DER 文件格式中添加证书到系统中信任的 CA 列表中,请将证书文件复制到 /usr/share/pki/ca-trust-source/anchors//etc/pki/ca-trust/source/anchors/ 目录中,例如:

    # cp ~/certificate-trust-examples/Cert-trust-test-ca.pem /usr/share/pki/ca-trust-source/anchors/
  2. 要更新全系统的信任存储配置,请使用update-ca-trust命令。

    # update-ca-trust
注意

虽然Firefox浏览器能够在不执行update-ca-trust的情况下使用新增的证书,但Red Hat建议在更换CA后使用update-ca-trust命令。另外要注意的是,Firefox、Epiphany或Chromium等浏览器会有缓存文件,你可能需要清除浏览器的缓存或重启浏览器才能加载当前的系统证书配置。

5.3. 管理可信系统证书

trust 命令为管理全系统共享的信任存储中的证书提供了一种方便的方式。

  • 要列出、提取、添加、删除或更改信任锚,请使用信任命令。要查看该命令的内置帮助,请在没有任何参数或使用--help指令的情况下输入。

    $ trust
    usage: trust command <args>...
    
    Common trust commands are:
      list             List trust or certificates
      extract          Extract certificates and trust
      extract-compat   Extract trust compatibility bundles
      anchor           Add, remove, change trust anchors
      dump             Dump trust objects in internal format
    
    See 'trust <command> --help' for more information
  • 要列出所有系统信任锚和证书,请使用信任列表命令。

    $ trust list
    pkcs11:id=%d2%87%b4%e3%df%37%27%93%55%f6%56%ea%81%e5%36%cc%8c%1e%3f%bd;type=cert
        type: certificate
        label: ACCVRAIZ1
        trust: anchor
        category: authority
    
    pkcs11:id=%a6%b3%e1%2b%2b%49%b6%d7%73%a1%aa%94%f5%01%e7%73%65%4c%ac%50;type=cert
        type: certificate
        label: ACEDICOM Root
        trust: anchor
        category: authority
    ...
  • 要将信任锚存储到全系统的信任存储中,使用信任锚子命令并指定证书的路径。将path.to/certificate.crt替换为证书的路径和文件名。

    # trust anchor path.to/certificate.crt
  • 要删除证书,可以使用证书的路径或证书的ID。

    # trust anchor --remove path.to/certificate.crt
    # trust anchor --remove "pkcs11:id=%AA%BB%CC%DD%EE;type=cert"

其它资源

  • trust 命令的所有子命令都提供了详细的内置帮助,例如。

    $ trust list --help
    usage: trust list --filter=<what>
    
      --filter=<what>     filter of what to export
                            ca-anchors        certificate anchors
    ...
      --purpose=<usage>   limit to certificates usable for the purpose
                            server-auth       for authenticating servers
    ...

5.4. 其它资源

更多信息,请参见以下手册页面。

  • update-ca-trust(8)
  • trust(1)

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。