3.5. 为证书设置签名算法
CA 的签名证书可以使用 CA 支持的任何公钥算法为其发出的证书签名。例如,ECC 签名证书可以签署 ECC 和 RSA 证书签名请求,RSA 签名证书可以签署 RSA 和 ECC 证书请求。
ECC 和 RSA 是公钥加密和解密算法。公钥算法都支持不同的密码套件,用于加密和解密数据的算法。CA 签名证书的功能部分就是使用其其中一个支持的密码套件发布和签署证书。
每个配置集可以定义 CA 应该用来为通过该配置集处理的证书签名的密码套件。如果没有设置签名算法,则配置集会使用任何默认签名算法。
3.5.1. 设置 CA 的默认签名算法
打开 CA 控制台。
pkiconsole https://server.example.com:8443/ca
注意pkiconsole
已被弃用。- 在 Configuration 选项卡中,展开 Certificate Manager 树。
在 General Settings 选项卡中,设置 Algorithm 下拉菜单中使用的算法。
3.5.1.1. 在配置集中设置签名算法默认
每个配置集都定义了 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
注意pkiconsole
已被弃用。- 在 Configuration 选项卡中,展开 Certificate Manager 树。
- 点 Certificate Profiles 项。
- 点 Policies 选项卡。
- 选择 Signing Alg 策略,然后单击 按钮。
要设置默认的签名算法,请在 Defaults 选项卡中设置值。如果这设置为 -,则配置集将使用 CA 的默认值。
要设置证书请求中允许的签名算法列表,请打开 Constraints 选项卡,并在
signingAlgsAllowed
的 Value 字段中设置算法列表。约束的可能值列在 第 B.2.10 节 “签名算法约束” 中。