Red Hat Training

A Red Hat training course is available for RHEL 8

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

如果您的 Identity Management(IdM)安装配置了集成证书系统(CS)证书颁发机构(CA),您可以创建轻量级子 CA。您创建的所有子 CA 都从属于证书系统的主 CA,即 ipa CA。

在这种情况下,轻量 级子 CA 意味着为特定目的发布证书的子 CA。例如,轻量级子 CA 允许您配置服务,如虚拟专用网络(VPN)网关和 Web 浏览器,以仅接受子 CA A 发布的证书。通过将其他服务配置为仅接受由 子 CA B 发布的证书,您可以防止它们接受 子 CA、主 CA(ipa CA)和两者之间的任何中间子 CA 发布的证书。

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

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

您需要执行的步骤有:

60.1. 创建轻量级子 CA

有关创建子 CA 的详情,请参考:

60.1.1. 从 IdM WebUI 创建子 CA

这个步骤描述了如何使用 IdM WebUI 创建名为webserver-ca 和 webclient-ca 的新子 CA

先决条件

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

流程

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

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

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

  6. 另外,要验证新子 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 证书自动传输到安装有证书系统实例的所有副本。

60.1.2. 从 IdM CLI 创建子 CA

这个步骤描述了如何使用 IdM CLI 创建新子 CA,名为webserver-cawebclient-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)。主题 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-ca 和 webclient-ca 子 CA 证书创建 certmonger 跟踪请求

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

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

  4. 另外,要验证新子 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 证书自动传输到安装有证书系统实例的所有副本。