Menu Close

11.4. 使用外部签名证书续订 IdM CA 续订服务器

本节论述了如何使用外部 CA 续订 Identity Management(IdM)证书颁发机构(CA)证书来为证书签名请求(CSR)签名。在这个配置中,您的 IdM CA 服务器是外部 CA 的子 CA。外部 CA 可以,但不必是 Active Directory 证书服务器(AD CS)。

如果外部证书颁发机构是 AD CS,您可以在 CSR 中指定 IdM CA 证书的模板。证书模板定义了 CA 在收到证书请求时使用的策略和规则。AD 中的证书模板与 IdM 中的证书配置集对应。

您可以根据其对象标识符(OID)定义特定的 AD CS 模板。OID 是各种颁发机构发布的唯一数字值,用于识别数据元素、语法以及分布式应用程序的其他部分。

另外,您还可以通过其名称来定义特定的 AD CS 模板。例如,由 IdM CA 提交的 CSR 中使用的默认配置集的名称是 subCA

要通过在 CSR 中指定 OID 或名称来定义配置集,请使用 external-ca-profile 选项。详情请查看 ipa-cacert-manage man page。

除了使用可用的证书模板外,您还可以在 AD CS 中创建自定义证书模板,并在 CSR 中使用它。

先决条件

  • 有到 IdM CA 续订服务器的 root 访问权限。

步骤

完成这个步骤,使用外部签名续订 IdM CA 的证书,无论当前的 CA 证书是自签名还是外部签名。

  1. 创建要提交到外部 CA 的 CSR:

    • 如果外部 CA 是一个 AD CS,请使用 --external-ca-type=ms-cs 选项。如果您希望使用默认 subCA 模板以外的一个不同的模板,使用 --external-ca-profile 选项指定它:

      ~]# ipa-cacert-manage renew --external-ca --external-ca-type=ms-cs [--external-ca-profile=PROFILE]
      Exporting CA certificate signing request, please wait
      The next step is to get /var/lib/ipa/ca.csr signed by your CA and re-run ipa-cacert-manage as:
      ipa-cacert-manage renew --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate
      The ipa-cacert-manage command was successful
    • 如果外部 CA 不是 AD CS:

      ~]# ipa-cacert-manage renew --external-ca
      Exporting CA certificate signing request, please wait
      The next step is to get /var/lib/ipa/ca.csr signed by your CA and re-run ipa-cacert-manage as:
      ipa-cacert-manage renew --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate
      The ipa-cacert-manage command was successful

      输出显示已创建 CSR,并存储在 /var/lib/ipa/ca.csr 文件中。

  2. 将位于 /var/lib/ipa/ca.csr 中的 CSR 提交到外部 CA。这个过程根据要用作外部 CA 的服务的不同而有所不同。
  3. 在 base 64 编码的 blob 中检索签发的证书和 CA 证书链,即:

    • 如果外部 CA 不是 AD CS,则为一个 PEM 文件。
    • 外部 CA 是 AD CS,则 为一个 Base_64 证书。

      各个证书服务的进程不同。通常,网页或通知电子邮件中的下载链接允许管理员下载所有需要的证书。

      如果外部 CA 是 AD CS,且您已提通过 Microsoft Windows 认证认证机构管理窗口提交了带有已知模板的 CSR,则 AD CS 会立即发出证书,Save Certificate 对话框会出现在 AD CS Web 界面中,要求保存签发的证书。

  4. 再次运行 ipa-cacert-manage renew 命令,添加提供完整证书链所需的所有 CA 证书文件。根据需要指定多个文件,多次使用 --external-cert-file 选项:

    ~]# ipa-cacert-manage renew --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate_1 --external-cert-file=/path/to/external_ca_certificate_2
  5. 在所有 IdM 服务器和客户端中,使用来自服务器的证书更新本地 IdM 证书数据库:

    [client ~]$ ipa-certupdate
    Systemwide CA database updated.
    Systemwide CA database updated.
    The ipa-certupdate command was successful
  6. (可选)检查您的更新是否成功,并且新的 CA 证书已添加到 /etc/ipa/ca.crt 文件中:

    [client ~]$ openssl crl2pkcs7 -nocrl -certfile /etc/ipa/ca.crt | openssl pkcs7 -print_certs -text -noout
    [...]
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 39 (0x27)
            Signature Algorithm: sha256WithRSAEncryption
            Issuer: O=IDM.EXAMPLE.COM, CN=Certificate Authority
            Validity
                Not Before: Jul  1 16:32:45 2019 GMT
                Not After : Jul  1 16:32:45 2039 GMT
            Subject: O=IDM.EXAMPLE.COM, CN=Certificate Authority
    [...]

    输出显示,更新已成功,因为使用较旧的 CA 证书列出新的 CA 证书。