3.6. 管理与 CA 相关的配置集
证书配置文件和扩展必须用于设置从属 CA 如何发布证书的规则。有两个部分:
- 管理 CA 签名证书
- 定义颁发规则
3.6.1. 对 CA 证书设置限制
创建从属 CA 时,根 CA 可以对从属 CA 施加限制或限制。例如,root CA 可以通过设置 CA 签名证书中 Basic Constraints 扩展,确定有效认证 路径的最大深度(允许将子 CA 的数量链接在新的 CA 下)。
证书链通常由实体证书、零个或多个中间 CA 证书和 root CA 证书组成。root CA 证书由外部可信 CA 自签名或签名。签发后,根 CA 证书将作为可信 CA 加载到证书数据库中。
在执行 TLS 握手、发送 S/MIME 消息或发送签名对象时,证书交换将发生。作为握手的一部分,发送发送者应发送主题证书以及将主题证书链接到可信根所需的任何中间 CA 证书。要使证书链正常工作,证书应该具有以下属性:
有关证书及其扩展的更多信息,请参阅 Internet X.509 公钥基础架构 - 证书和证书撤销列表(CRL)配置文件(RFC 5280),网址为 RFC 5280。
这些扩展可以通过证书配置文件注册页面进行配置。默认情况下,CA 包含所需的和合理的配置设置,但可以自定义这些设置。
这个流程描述了编辑 CA 使用的 CA 证书配置文件,以将 CA 证书发送到其下级 CA。
首次配置 CA 实例时使用的配置集为 /var/lib/pki/instance_name/ca/conf/caCert.profile
。无法在 pkiconsole
中编辑此配置集(因为它仅在配置实例前可用)。在使用文本编辑器配置 CA 之前,可以在模板文件中编辑此配置集的策略。
在 CA 使用的 CA 签名证书配置文件中修改默认值:
- 如果当前启用了配置集,则必须禁用它,然后才能编辑它。打开代理服务页面,从左侧导航菜单中选择 Manage Certificate Profiles,选择配置集,然后单击 Disable profile。
打开 CA 控制台。
# pkiconsole -d nssdb -n 'optional client cert nickname' https://server.example.com:8443/ca
注意pkiconsole
已被弃用,并将在以后的主发行版本中被新的基于浏览器的 UI 替代。虽然pkiconsole
在发布替代 UI 之前继续可用,但我们鼓励在此鼓励使用命令行与pkiconsole
等效,因为 pki CLI 将继续支持并在将来有新的基于浏览器的 UI 时受到改进。- 在 Configuration 选项卡的左侧导航树中,选择 Certificate Manager,然后选择 Certificate Profiles。
- 从右窗口中选择 caCACert 或适当的 CA 签名证书配置文件,然后点击 Edit/View。
- 在 Certificate Profile Rule Editor 的 Policies 选项卡中,选择并编辑 Key Usage 或 Extended Key Usage Extension Default (如果存在或将其添加到配置集)。
- 根据情况,选择 Key Usage 或 Extended Key Usage Extension Constraint。
- 设置 CA 证书的默认值。如需更多信息,请参阅 第 B.1.13 节 “关键用法扩展默认” 和 第 B.1.8 节 “扩展的密钥用法扩展默认”。
- 为 CA 证书设置约束值。没有要为 Key Usage 扩展设置限制 ; 对于扩展 Key Usage 扩展,请为 CA 设置适当的 OID 约束。如需更多信息,请参阅 第 B.1.8 节 “扩展的密钥用法扩展默认”。
- 对配置文件进行了更改后,再次登录代理服务页面,然后重新启用证书配置文件。
有关修改证书配置文件的更多信息,请参阅 第 3.2 节 “设置证书配置文件”。
3.6.2. 在发布证书时更改 CA 的限制
在配置子系统后,默认对签发的证书的限制。它们是:
- 证书是否可以比 CA 签名证书的有效期更长。默认为不允许这样做。
- 用于签署证书的签名算法。
- CA 可以使用的序列号范围发布证书。
从属 CA 对有效期、证书类型以及可发出的扩展类型具有约束。从属 CA 可以发布违反这些限制的证书,但客户端验证违反了这些限制的证书将不接受该证书。在更改从属 CA 的发布规则前,检查 CA 签名证书上设置的限制。
更改证书颁发规则:
打开证书系统控制台。
# pkiconsole -d nssdb -n 'optional client cert nickname' https://server.example.com:8443/ca
注意pkiconsole
已被弃用,并将在以后的主发行版本中被新的基于浏览器的 UI 替代。虽然pkiconsole
在发布替代 UI 之前继续可用,但我们鼓励在此鼓励使用命令行与pkiconsole
等效,因为 pki CLI 将继续支持并在将来有新的基于浏览器的 UI 时受到改进。在 Configuration 选项卡的左侧导航树中选择 Certificate Manager 项。
图 3.1. 默认情况下,非下级 CA 中的 General Settings 选项卡
默认情况下,在非克隆的 CA 中,证书管理器 菜单项的 General Settings 选项卡包含这些选项:
覆盖有效的嵌套要求。此复选框设定了证书管理器是否可以发布有效期超过 CA 签名证书有效周期的证书。
如果没有选择此复选框,且 CA 收到有效期超过 CA 签名证书有效期周期的请求,则它会自动截断 CA 签名证书过期日的有效性周期。
证书序列号.这些字段显示证书管理器发布的证书的序列号范围。服务器将 Next 序列号 字段中的序列号分配给其发出的下一个证书,以及其发出的最后一个证书的 结束序列号 中的数字。
序列号范围允许部署多个 CA,并平衡每个 CA 问题的证书数量。签发者名称和唯一标识证书的序列号的组合。
注意带有克隆的 CA 的序列号范围会波动。所有克隆的 CA 共享一个通用配置条目,用于定义下一个可用范围。当一个 CA 在可用数字上开始运行时,它会检查此配置条目并声明下一个范围。该条目会自动更新,以便下一个 CA 获取一个新的范围。
范围在
begin*Number
和end*Number
属性中定义,并为请求和证书序列号定义单独的范围。例如:dbs.beginRequestNumber=1 dbs.beginSerialNumber=1 dbs.enableSerialManagement=true dbs.endRequestNumber=9980000 dbs.endSerialNumber=ffe0000 dbs.ldap=internaldb dbs.newSchemaEntryAdded=true dbs.replicaCloneTransferNumber=5
可以为未克隆的 CA 启用序列号管理。但是,默认情况下,序列号管理被禁用,除非系统被克隆(在自动启用时)。
无法通过控制台手动更新序列号范围。序列号范围是只读字段。
默认签名算法.指定证书管理器用来签署证书的签名算法。如果 CA 的签名密钥类型是 RSA,则选项为
SHA256withRSA
证书配置文件配置中指定的签名算法会覆盖此处设定的算法。
默认情况下,在克隆的 CA 中,证书管理器 菜单项的 General Settings 选项卡包含这些选项:
- 启用序列号管理
启用随机证书序列号
选中这两个复选框。
图 3.2. 默认克隆的 CA 中的 General Settings 选项卡
- 点击 Save。
3.6.3. 使用随机证书序列号
Red Hat Certificate System 包含对请求、证书和副本 ID 的序列号管理。这允许在 安装身份管理
(IdM)时自动化克隆。
这些方法可以降低基于哈希的攻击的可能性:
- 使攻击者无法预测证书序列号的一部分
- 将随机选择的组件添加到身份中
- 通过偏移每个正向或后向攻击者提供有效的日期,使攻击者无法预测
随机证书序列号分配 方法将随机选择的组件添加到身份中。这个方法:
- 使用克隆
- 允许解决冲突
- 与当前的序列号管理方法兼容
- 与管理员、代理和最终实体的当前工作流兼容
- 在后续序列号管理中修复现有程序错误
管理员必须启用随机证书序列号。
启用随机证书序列号
您可以从命令行或控制台 UI 启用自动序列号范围管理。
从控制台 UI 启用自动序列号管理:
在 General Settings 选项卡中,选择 Enable serial number management 选项。
图 3.3. 启用随机序列号分配时常规设置选项卡
- 选择 Enable random certificate 序列号 选项。