Menu Close

第 17 章 将应用程序限制为只信任证书子集

如果您的身份管理(IdM)安装被配置为带有集成的证书系统(CS)证书颁发机构(CA),您可以创建轻量级的子 CA。您创建的所有子 CA 都从属到证书系统的主 CA ,ipa CA。

在这个上下文中的 lightweight sub-CA 代表一个子 CA 为特定目的发布证书。例如,可以使用轻量级子 CA 配置一个服务(如 VPN 网关, Web 浏览器),仅接受由子 CA A 签发的证书。通过将其他服务配置为仅接受 子 CA B 签发的证书,您可以防止他们接受 子 CA A,主 CA(ipa CA)以及两者之间的任何中间子 CA 签发的证书。

如果您撤销了一个了子 CA 的中间证书,正确配置的客户端会将由这个子 CA 发布的所有证书都视为无效。root CA、ipa 或另一个子 CA 直接发布的所有其他证书均保持有效。

本节使用 Apache Web 服务器示例来说明如何将应用程序限制为仅信任某个证书子集。完成这个部分,将在 IdM 客户端中运行的 web 服务器限制为使用由 webserver-ca IdM 子 CA 发布的证书,并要求用户使用 webclient-ca IdM 子 CA 发布的用户证书向 Web 服务器进行身份验证。

您需要执行的步骤有:

17.1. 管理轻量级子 CA

本节描述了如何管理轻量级从属证书颁发机构(sub-CA)。您创建的所有子 CA 都从属到证书系统的主 CA ,ipa CA。您还可以禁用和删除子 CA。

注意
  • 如果您删除了子 CA,则该子 CA 的吊销检查将不再工作。只有当子 CA 不再发布证书,且其 notAfter 过期时间在未来时,才可以删除该子 CA。
  • 只有当子 CA 发布的证书仍然未过期时,才应禁用该子CA。如果子 CA 发布的所有证书都已过期,您可以删除该子 CA。
  • 您不能禁用或删除 IdM CA。

有关管理子 CA 的详情,请参阅:

17.1.1. 从 IdM WebUI 创建子 CA

此流程描述了如何使用 IdM Web UI 来创建名为 webserver-cawebclient-ca 的新子 CA。

先决条件

  • 确保您已获取了管理员的凭据。

步骤

  1. Authentication 菜单中,点 Certificates
  2. 选择证书授权并点添加
  3. 输入 webserver-ca 子 CA 的名称。在 Subject DN 字段中输入 Subject DN,如 CN=WEBSERVER,O=IDM.EXAMPLE.COM。请注意,Subject DN 在 IdM CA 基础架构中必须是唯一的。
  4. 输入 webclient-ca 子 CA 的名称。在 Subject DN 字段中输入 Subject DN CN=WEBCLIENT,O=IDM.EXAMPLE.COM
  5. 在命令行界面中,运行 ipa-certupdate 命令,来为 webserver-cawebclient-ca 子 CA 证书创建 certmonger 追踪请求:

    [root@ipaserver ~]# ipa-certupdate
    重要

    在创建子 CA 后如果忘记运行 ipa-certupdate 命令,则意味着在子 CA 证书过期时,即使最终的证书没有过期,子 CA 签发的最终证书也会被视为无效,。

验证

  • 验证新子 CA 的签名证书是否已添加到 IdM 数据库中:

    [root@ipaserver ~]# certutil -d /etc/pki/pki-tomcat/alias/ -L
    
    Certificate Nickname                      Trust Attributes
                                              SSL,S/MIME,JAR/XPI
    
    caSigningCert cert-pki-ca                 CTu,Cu,Cu
    Server-Cert cert-pki-ca                   u,u,u
    auditSigningCert cert-pki-ca              u,u,Pu
    caSigningCert cert-pki-ca ba83f324-5e50-4114-b109-acca05d6f1dc u,u,u
    ocspSigningCert cert-pki-ca               u,u,u
    subsystemCert cert-pki-ca                 u,u,u
    注意

    新的子 CA 证书将自动传输到安装了证书系统实例的所有副本。

17.1.2. 从 IdM WebUI 删除子 CA

这个流程描述了如何在 IdM Web UI 中删除轻量级子 CA。

注意
  • 如果您删除了子 CA,则该子 CA 的吊销检查将不再工作。只有当子 CA 不再发布证书,且其 notAfter 过期时间在未来时,才可以删除该子 CA。
  • 只有当子 CA 发布的证书仍然未过期时,才应禁用该子CA。如果子 CA 发布的所有证书都已过期,您可以删除该子 CA。
  • 您不能禁用或删除 IdM CA。

先决条件

步骤

  1. 在 IdM Web UI 中,打开 身份验证 选项卡,然后选择 证书 子选项卡。
  2. 选择 证书颁发机构
  3. 选择要删除的子 CA,然后单击" 删除 "。

    图 17.1. 在 IdM Web UI 中删除子 CA

    "证书颁发机构"屏幕截图,您可以在其中添加和删除证书颁发机构和从属证书颁发机构。
  4. 单击 删除 以确认。

子 CA 从 证书颁发机构 列表中删除。

17.1.3. 从 IdM CLI 创建子 CA

此流程描述了如何使用 IdM CLI 来创建名为 webserver-cawebclient-ca 的新子 CA。

先决条件

  • 确保您已获取了管理员的凭据。
  • 确保您已登录到一个 CA 服务器的 IdM 服务器。

步骤

  1. 输入 ipa ca-add 命令,指定 webserver-ca 子 CA 的名称及其 Subject Distinguished Name(DN):

    [root@ipaserver ~]# ipa ca-add webserver-ca --subject="CN=WEBSERVER,O=IDM.EXAMPLE.COM"
    -------------------
    Created CA "webserver-ca"
    -------------------
      Name: webserver-ca
      Authority ID: ba83f324-5e50-4114-b109-acca05d6f1dc
      Subject DN: CN=WEBSERVER,O=IDM.EXAMPLE.COM
      Issuer DN: CN=Certificate Authority,O=IDM.EXAMPLE.COM
    名称
    CA 的名称。
    颁发机构 ID
    自动创建,为 CA 创建单独的 ID。
    主题 DN
    主题可辨识名称(DN)。Subject DN 在 IdM CA 基础架构中必须是唯一的。
    签发者 DN
    发布子 CA 的父 CA。所有子 CA 都作为 IdM root CA 的子 CA 创建。
  2. 创建 webclient-ca 子 CA 以将证书发送到 Web 客户端:

    [root@ipaserver ~]# ipa ca-add webclient-ca --subject="CN=WEBCLIENT,O=IDM.EXAMPLE.COM"
    -------------------
    Created CA "webclient-ca"
    -------------------
      Name: webclient-ca
      Authority ID: 8a479f3a-0454-4a4d-8ade-fd3b5a54ab2e
      Subject DN: CN=WEBCLIENT,O=IDM.EXAMPLE.COM
      Issuer DN: CN=Certificate Authority,O=IDM.EXAMPLE.COM
  3. 运行 ipa-certupdate 命令,来为 webserver-cawebclient-ca 子 CAs 证书创建 certmonger 追踪请求:

    [root@ipaserver ~]# ipa-certupdate
    重要

    如果您在创建子 CA 后忘记了运行 ipa-certupdate 命令,且子 CA 证书已过期,则该子 CA 发布的最终身份证书被视为无效,即使最终身份证书没有过期。

验证步骤

  • 验证新子 CA 的签名证书是否已添加到 IdM 数据库中:

    [root@ipaserver ~]# certutil -d /etc/pki/pki-tomcat/alias/ -L
    
    Certificate Nickname                      Trust Attributes
                                              SSL,S/MIME,JAR/XPI
    
    caSigningCert cert-pki-ca                 CTu,Cu,Cu
    Server-Cert cert-pki-ca                   u,u,u
    auditSigningCert cert-pki-ca              u,u,Pu
    caSigningCert cert-pki-ca ba83f324-5e50-4114-b109-acca05d6f1dc u,u,u
    ocspSigningCert cert-pki-ca               u,u,u
    subsystemCert cert-pki-ca                 u,u,u
    注意

    新的子 CA 证书将自动传输到安装了证书系统实例的所有副本。

17.1.4. 从 IdM CLI 禁用子 CA

这个流程描述了如何从 IdM CLI 禁用子 CA。如果子 CA 发布的证书还有未过期的,则您不应该删除它,但可以禁用它。如果您删除了子 CA,则对该子 CA 的吊销检查将不再工作。

先决条件

  • 确保您已获取了管理员的凭据。

步骤

  1. 运行 ipa ca-find 命令来确定您要删除的子 CA 的名称:

    [root@ipaserver ~]# ipa ca-find
    -------------
    3 CAs matched
    -------------
      Name: ipa
      Description: IPA CA
      Authority ID: 5195deaf-3b61-4aab-b608-317aff38497c
      Subject DN: CN=Certificate Authority,O=IPA.TEST
      Issuer DN: CN=Certificate Authority,O=IPA.TEST
    
      Name: webclient-ca
      Authority ID: 605a472c-9c6e-425e-b959-f1955209b092
      Subject DN: CN=WEBCLIENT,O=IDM.EXAMPLE.COM
      Issuer DN: CN=Certificate Authority,O=IPA.TEST
    
     Name: webserver-ca
      Authority ID: 02d537f9-c178-4433-98ea-53aa92126fc3
      Subject DN: CN=WEBSERVER,O=IDM.EXAMPLE.COM
      Issuer DN: CN=Certificate Authority,O=IPA.TEST
    ----------------------------
    Number of entries returned 3
    ----------------------------
  2. 运行 ipa ca-disable 命令来禁用您的子 CA,在本例中为 webserver-ca

    ipa ca-disable webserver-ca
    --------------------------
    Disabled CA "webserver-ca"
    --------------------------

17.1.5. 从 IdM CLI 删除子 CA

这个流程描述了如何从 IdM CLI 删除轻量级子 CA。

注意
  • 如果您删除了子 CA,则该子 CA 的吊销检查将不再工作。只有当子 CA 不再发布证书,且其 notAfter 过期时间在未来时,才可以删除该子 CA。
  • 只有当子 CA 发布的证书仍然未过期时,才应禁用该子CA。如果子 CA 发布的所有证书都已过期,您可以删除该子 CA。
  • 您不能禁用或删除 IdM CA。

先决条件

  • 确保您已获取了管理员的凭据。

步骤

  1. 要显示子 CA 和 CA 的列表,请运行 ipa ca-find 命令:

    # ipa ca-find
    -------------
    3 CAs matched
    -------------
      Name: ipa
      Description: IPA CA
      Authority ID: 5195deaf-3b61-4aab-b608-317aff38497c
      Subject DN: CN=Certificate Authority,O=IPA.TEST
      Issuer DN: CN=Certificate Authority,O=IPA.TEST
    
      Name: webclient-ca
      Authority ID: 605a472c-9c6e-425e-b959-f1955209b092
      Subject DN: CN=WEBCLIENT,O=IDM.EXAMPLE.COM
      Issuer DN: CN=Certificate Authority,O=IPA.TEST
    
     Name: webserver-ca
      Authority ID: 02d537f9-c178-4433-98ea-53aa92126fc3
      Subject DN: CN=WEBSERVER,O=IDM.EXAMPLE.COM
      Issuer DN: CN=Certificate Authority,O=IPA.TEST
    ----------------------------
    Number of entries returned 3
    ----------------------------
  2. 运行 ipa ca-disable 命令来禁用您的子 CA,在本例中为 webserver-ca

    # ipa ca-disable webserver-ca
    --------------------------
    Disabled CA "webserver-ca"
    --------------------------
  3. 删除子 CA,在本例中为 webserver-ca

    # ipa ca-del webserver-ca
    -------------------------
    Deleted CA "webserver-ca"
    -------------------------

验证

  • 运行 ipa ca-find 来显示 CA 和子 CA 的列表。webserver-ca 不再位于列表中。

    # ipa ca-find
    -------------
    2 CAs matched
    -------------
      Name: ipa
      Description: IPA CA
      Authority ID: 5195deaf-3b61-4aab-b608-317aff38497c
      Subject DN: CN=Certificate Authority,O=IPA.TEST
      Issuer DN: CN=Certificate Authority,O=IPA.TEST
    
      Name: webclient-ca
      Authority ID: 605a472c-9c6e-425e-b959-f1955209b092
      Subject DN: CN=WEBCLIENT,O=IDM.EXAMPLE.COM
      Issuer DN: CN=Certificate Authority,O=IPA.TEST
    ----------------------------
    Number of entries returned 2
    ----------------------------