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 签名。发布后,root CA 证书作为可信 CA 加载到证书数据库中。
在执行 TLS 握手、发送 S/MIME 消息或发送已签名对象时,证书交换将发生。作为握手的一部分,发送方应该发送主题证书以及将主题证书链接到可信 root 所需的任何中间 CA 证书。要使证书链正常工作,证书应该具有以下属性:
- CA 证书必须具有基本约束扩展。
- CA 证书必须在 Key Usage 扩展中设置 keyCertSign 位。
当 CA 生成新密钥时,它们必须为所有主题证书添加授权密钥标识符扩展。此扩展有助于将证书与旧的 CA 证书区分开。CA 证书必须包含 Subject Key Identifier 扩展。
有关证书及其扩展的更多信息,请参阅 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 https://server.example.com:8443/ca
pkiconsole https://server.example.com:8443/ca
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意pkiconsole
已被弃用。- 在 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 扩展设置限制;对于扩展的密钥用法扩展,请为 CA 设置适当的 OID 约束。如需更多信息,请参阅 第 B.1.8 节 “扩展的密钥用法扩展默认”。
- 当对配置文件进行更改时,再次登录到代理服务页面,然后重新启用证书配置文件。
有关修改证书配置文件的更多信息,请参阅 第 3.2 节 “设置证书配置文件”。
3.6.2. 在发布证书时更改 CA 的限制 复制链接链接已复制到粘贴板!
在配置了子系统后,会默认设置对发布的证书的限制。它们是:
- 证书是否可以用有效期超过 CA 签名证书发布。默认值为禁止此操作。
- 用于签署证书的签名算法。
从属 CA 对有效期、证书类型以及他们可以发布的扩展类型具有限制。从属 CA 可能会发布违反这些限制的证书,但验证违反这些限制的证书的客户端将不接受该证书。在更改从属 CA 的发布规则前,检查 CA 签名证书上设置的限制。
更改证书颁发规则:
打开证书系统控制台。
pkiconsole https://server.example.com:8443/ca
pkiconsole https://server.example.com:8443/ca
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意pkiconsole
已被弃用。在 Configuration 选项卡的左侧导航树中选择 Certificate Manager 项。
图 3.1. 默认情况下,非下级 CA 中的 General Settings 选项卡
默认情况下,在非克隆的 CA 中,证书管理器 菜单项的 General Settings 选项卡包含这些选项:
覆盖有效的嵌套要求。此复选框设定证书管理器是否可以发布有效期超过 CA 签名证书有效期的证书。
如果没有选择此复选框,且 CA 收到有效期超过 CA 签名证书有效期周期的请求,则它会自动截断 CA 签名证书过期日的有效性周期。
证书序列号.
注意序列号范围不再适用。由于 Java 控制台弃用,它不会从控制台中删除。
默认签名算法.指定证书管理器用来签署证书的签名算法。如果 CA 的签名密钥类型是 RSA,则选项为
SHA256withRSA
证书配置文件配置中指定的签名算法覆盖此处设置的算法。
默认情况下,在克隆的 CA 中,证书管理器 菜单项的 General Settings 选项卡包含这些选项:
- 启用序列号管理
启用随机证书序列号
选中这两个复选框。
图 3.2. 默认克隆的 CA 中的 General Settings 选项卡
- 点击 Save。
3.6.3. 允许根据 CA 的有效周期续订 CA 证书 复制链接链接已复制到粘贴板!
通常,在发布 CA 证书过期日期 后,无法通过有效期发布证书。如果 CA 证书的过期日期为 2023 年 12 月 31 日,则问题的所有证书都必须在 2023 年 12 月 31 日前过期。
此规则适用于 CA 发布的其他 CA 签名证书 - 导致更新 root CA 证书几乎不可能。续订 CA 签名证书意味着它必须有有效期超过其自身的过期日期。
可以使用 CA Validity Default 更改此行为。此默认允许一个设置(bypassCAnotafter
),该设置允许以有效期期发布 CA 证书,并延长了发布 CA 的过期(notAfter)日期。
图 3.3. CA 有效期默认配置
在实际部署中,这意味着当可能阻止 root CA 的 CA 证书时,可以续订它。
要启用 CA 证书续订,超过原始 CA 的有效性日期:
打开
caCACert.cfg
文件。vim /var/lib/pki/ instance_name/ca/conf/caCACert.cfg
# vim /var/lib/pki/ instance_name/ca/conf/caCACert.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认情况下,应存在 CA Validity 默认。将值设为
true
以允许在发布 CA 的有效性周期内续订 CA 证书。policyset.caCertSet.2.default.name=CA Certificate Validity Default policyset.caCertSet.2.default.params.range=2922 policyset.caCertSet.2.default.params.startTime=0 policyset.caCertSet.2.default.params.bypassCAnotafter=true
policyset.caCertSet.2.default.name=CA Certificate Validity Default policyset.caCertSet.2.default.params.range=2922 policyset.caCertSet.2.default.params.startTime=0 policyset.caCertSet.2.default.params.bypassCAnotafter=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启 CA 以应用更改。
当代理检查续订请求时,在 Extensions/Fields 区域中有一个选项,允许代理选择绕过正常的有效期约束。如果代理选择 false
,则强制约束,即使配置文件中设置了 bypassCAnotafter=true
。如果没有启用 bypassCAnotafter
值,则代理选择 true,则 CA 将拒绝续订请求。
图 3.4. 在代理服务页面中绕过 CA 约束选项
CA Validity Default 仅适用于 CA 签名证书续订。其他证书必须在 CA 的有效周期内发布和更新。
CA ca.enablePastCATime
的单独配置设置可用于允许在 CA 的有效周期内续订证书。但是,这适用于 该 CA 发布的每个证书。由于潜在的安全问题,不建议在生产环境中使用此设置。