3.5. 为证书设置签名算法
CA 的签名证书可以签署它通过 CA 支持的任何公钥算法发布的证书。例如,ECC 签名证书可以同时为 ECC 和 RSA 证书请求签名,只要 CA 支持 ECC 和 RSA 算法。RSA 签名证书可以使用 EC 密钥为 PKCS11410 请求签名,但如果 ECC 模块没有可用于 CA 验证 CRMF 概念验证(POP),则可能无法使用 ECC 模块为 CRMF 证书签名。
ECC 和 RSA 是公钥加密和解密算法。公钥算法都支持不同的密码套件,用于加密和解密数据的算法。CA 签名证书的功能部分就是使用其其中一个支持的密码套件发布和签署证书。
每个配置集可以定义 CA 应该用来为通过该配置集处理的证书签名的密码套件。如果没有设置签名算法,则配置集会使用任何默认签名算法。
3.5.1. 设置 CA 的默认签名算法
- 打开 CA 控制台。
pkiconsole https://server.example.com:8443/ca
- 在 Configuration 选项卡中,展开 证书管理器 树。
- 在 General Settings 选项卡中,在 Algorithm 下拉菜单中选择要使用的算法。
注意
pkiconsole
已被弃用。
3.5.2. 在配置文件中设置签名算法默认值
每个配置集都定义了 Signing Algorithm Default 扩展。默认有两个设置:如果证书请求指定了不同的算法,则默认算法和允许的算法列表。如果没有指定签名算法,则配置集将使用任何设置为 CA 的默认值。
在配置文件的
.cfg
文件中,算法使用两个参数设置:
policyset.cmcUserCertSet.8.constraint.class_id=signingAlgConstraintImpl policyset.cmcUserCertSet.8.constraint.name=No Constraint policyset.cmcUserCertSet.8.constraint.params.signingAlgsAllowed=SHA256withRSA,SHA512withRSA,SHA256withEC,SHA384withRSA,SHA384withEC,SHA512withEC policyset.cmcUserCertSet.8.default.class_id=signingAlgDefaultImpl policyset.cmcUserCertSet.8.default.name=Signing Alg policyset.cmcUserCertSet.8.default.params.signingAlg=-
通过控制台配置 Signing Algorithm Default:
注意
在编辑配置集前,必须首先由代理禁用它。
- 打开 CA 控制台。
pkiconsole https://server.example.com:8443/ca
- 在 Configuration 选项卡中,展开 证书管理器 树。
- 点 Certificate Profiles 项。
- 点 Policies 选项卡。
- 选择 Signing Alg 策略,然后单击 按钮。
- 要设置默认签名算法,请在 Defaults 选项卡中设置值。如果设置为 -,则配置文件将使用 CA 的默认值。
- 要设置可在证书请求中可接受的允许签名算法列表,请打开 Constraints 选项卡,并在 Value 字段中为 signingAlgsAllowed 设置算法列表。约束的可能值列在 第 B.2.10 节 “签名算法约束” 中。
注意
pkiconsole
已被弃用。