第 22 章 将应用程序限制为只信任证书子集
如果您的身份管理(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 服务器进行身份验证。
您需要执行的步骤有:
- 创建 IdM 子 CA
- 从 IdM WebUI 下载子 CA 证书
- 创建 CA ACL,指定用户、服务和 CA 的正确组合,以及使用的证书配置集
- 为 IdM 子 CA 在 IdM 客户端中运行的 web 服务请求证书
- 设置单实例 Apache HTTP 服务器
- 在 Apache HTTP 服务器中添加 TLS 加密
- 在 Apache HTTP 服务器中设置支持的 TLS 协议版本
- 在 Apache HTTP 服务器中设置支持的密码
- 在 web 服务器上配置 TLS 客户端证书身份验证
- 从 IdM 子 CA 请求用户的证书并将其导出到客户端
- 将用户证书导入到浏览器中,并将浏览器配置为信任 sub-CA 证书
22.1. 管理轻量级子 CA 复制链接链接已复制到粘贴板!
本节描述了如何管理轻量级从属证书颁发机构(sub-CA)。您创建的所有子 CA 都从属到证书系统的主 CA ,ipa
CA。您还可以禁用和删除子 CA。
-
如果您删除了子 CA,则该子 CA 的吊销检查将不再工作。只有当子 CA 不再发布证书,且其
notAfter
过期时间在未来时,才可以删除该子 CA。 - 只有当子 CA 发布的证书仍然未过期时,才应禁用该子CA。如果子 CA 发布的所有证书都已过期,您可以删除该子 CA。
- 您不能禁用或删除 IdM CA。
22.1.1. 从 IdM WebUI 创建子 CA 复制链接链接已复制到粘贴板!
按照以下流程,使用 IdM WebUI 创建名为 webserver-ca 和 webclient-ca 的新子 CA。
先决条件
- 以管理员身份登录。
步骤
- 在 Authentication 菜单中,点 Certificates。
- 选择证书授权并点添加。
- 输入 webserver-ca 子 CA 的名称。在 Subject DN 字段中输入 Subject DN,如 CN=WEBSERVER,O=IDM.EXAMPLE.COM。请注意,Subject DN 在 IdM CA 基础架构中必须是唯一的。
- 输入 webclient-ca 子 CA 的名称。在 Subject DN 字段中输入 Subject DN CN=WEBCLIENT,O=IDM.EXAMPLE.COM。
在命令行中,运行
ipa-certupdate
命令为 webserver-ca 和 webclient-ca 子 CA 证书创建 certmonger 跟踪请求:ipa-certupdate
[root@ipaserver ~]# ipa-certupdate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在创建子 CA 后如果忘记运行
ipa-certupdate
命令,则意味着在子 CA 证书过期时,即使最终的证书没有过期,子 CA 签发的最终证书也会被视为无效,。
验证
验证新子 CA 的签名证书是否已添加到 IdM 数据库中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意新的子 CA 证书将自动传输到安装了证书系统实例的所有副本。
22.1.2. 从 IdM WebUI 删除子 CA 复制链接链接已复制到粘贴板!
按照以下流程删除 IdM Web UI 中的轻量级子 CA。
-
如果您删除了子 CA,则该子 CA 的吊销检查将不再工作。只有当子 CA 不再发布证书,且其
notAfter
过期时间在未来时,才可以删除该子 CA。 - 只有当子 CA 发布的证书仍然未过期时,才应禁用该子CA。如果子 CA 发布的所有证书都已过期,您可以删除该子 CA。
- 您不能禁用或删除 IdM CA。
先决条件
- 以管理员身份登录。
- 您已在 IdM CLI 中禁用了子 CA。请参阅 从 IdM CLI 禁用子 CA
步骤
-
在 IdM Web UI 中,打开
身份验证
选项卡,然后选择证书
子选项卡。 -
选择
证书颁发机构
。 选择要删除的子 CA,然后单击"
删除
"。图 22.1. 在 IdM Web UI 中删除子 CA
-
单击
删除
以确认。
22.1.3. 从 IdM CLI 创建子 CA 复制链接链接已复制到粘贴板!
按照以下流程,使用 IdM CLI 创建名为 webserver-ca 和 webclient-ca 的新子 CA。
先决条件
- 您已以管理员身份登录到 CA 服务器的 IdM 服务器。
步骤
输入
ipa ca-add
命令,指定 webserver-ca 子 CA 的名称及其 Subject Distinguished Name(DN):Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 名称
- CA 的名称。
- 颁发机构 ID
- 自动创建,为 CA 创建单独的 ID。
- 主题 DN
- 主题可辨识名称(DN)。Subject DN 在 IdM CA 基础架构中必须是唯一的。
- 签发者 DN
- 发布子 CA 的父 CA。所有子 CA 都作为 IdM root CA 的子 CA 创建。
创建 webclient-ca 子 CA 以将证书发送到 Web 客户端:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 ipa-certupdate 命令,来为 webserver-ca 和 webclient-ca 子 CAs 证书创建 certmonger 追踪请求:
ipa-certupdate
[root@ipaserver ~]# ipa-certupdate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果您在创建子 CA 后忘记了运行 ipa-certupdate 命令,且子 CA 证书已过期,则该子 CA 发布的最终身份证书被视为无效,即使最终身份证书没有过期。
验证
验证新子 CA 的签名证书是否已添加到 IdM 数据库中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意新的子 CA 证书将自动传输到安装了证书系统实例的所有副本。
22.1.4. 从 IdM CLI 禁用子 CA 复制链接链接已复制到粘贴板!
按照以下流程,从 IdM CLI 禁用子 CA。如果子 CA 发布的证书还有未过期的,则您不应该删除它,但可以禁用它。如果您删除了子 CA,则对该子 CA 的吊销检查将不再工作。
先决条件
- 以管理员身份登录。
步骤
运行
ipa ca-find
命令来确定您要删除的子 CA 的名称:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
ipa ca-disable
命令来禁用您的子 CA,在本例中为webserver-ca
:ipa ca-disable webserver-ca -------------------------- Disabled CA "webserver-ca" --------------------------
ipa ca-disable webserver-ca -------------------------- Disabled CA "webserver-ca" --------------------------
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.1.5. 从 IdM CLI 删除子 CA 复制链接链接已复制到粘贴板!
按照以下流程从 IdM CLI 删除轻量级子 CA。
-
如果您删除了子 CA,则该子 CA 的吊销检查将不再工作。只有当子 CA 不再发布证书,且其
notAfter
过期时间在未来时,才可以删除该子 CA。 - 只有当子 CA 发布的证书仍然未过期时,才应禁用该子CA。如果子 CA 发布的所有证书都已过期,您可以删除该子 CA。
- 您不能禁用或删除 IdM CA。
先决条件
- 以管理员身份登录。
步骤
要显示子 CA 和 CA 的列表,请运行
ipa ca-find
命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
ipa ca-disable
命令来禁用您的子 CA,在本例中为webserver-ca
:ipa ca-disable webserver-ca
# ipa ca-disable webserver-ca -------------------------- Disabled CA "webserver-ca" --------------------------
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除子 CA,在本例中为
webserver-ca
:ipa ca-del webserver-ca
# ipa ca-del webserver-ca ------------------------- Deleted CA "webserver-ca" -------------------------
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行
ipa ca-find
来显示 CA 和子 CA 的列表。webserver-ca
不再位于列表中。Copy to Clipboard Copied! Toggle word wrap Toggle overflow