附录 A. 证书配置文件输入和输出参考
配置集输入和输出在证书请求中定义预期的输入参数,以及注册结果的输出格式。与 Red Hat Certificate System 中的很多其他组件一样,配置集输入和输出也实施为 JAVA 插件,以提供自定义和灵活性。本附录提供了默认输入和输出插件的引用。
A.1. 输入参考
输入将某些字段放到与特定证书配置文件关联的注册页面中。为证书配置文件设置的输入用于通过适当的字段动态生成注册页面;这些输入字段收集配置集生成必要信息来生成最终证书。
A.1.1. 证书请求输入
证书请求输入用于注册证书请求将粘贴到注册表中的注册。它允许从下拉列表中设置请求格式,并提供用于粘贴请求的输入字段。
此输入将以下字段放在注册表单中:
- 证书请求类型.此下拉菜单允许用户指定证书请求类型。选择是 PKCS #10 或 CRMF。PKCS #10 和 CRMF 支持通过 Cryptographic Message Syntax (CMC)注册进行证书管理消息。
- 证书请求.这是粘贴请求的文本区域。
caAdminCert.cfg:input.i1.class_id=certReqInputImpl
A.1.2. CMC 证书请求输入
CMC 证书请求输入用于使用通过 CMS (CMC)证书请求进行注册,以请求表单提交。请求类型必须是 PKCS#10 或 CRMF,唯一的字段是 证书 Request 文本区域,用于粘贴请求。
caCMCUserCert.cfg:input.i1.class_id=cmcCertReqInputImpl
A.1.3. 双密钥生成输入
Dual Key Generation input 用于注册将生成双密钥对的注册,因此签发两个证书,一个用于签名,另一个用于加密。
此输入将以下字段放入注册表单中:
-
密钥生成请求类型.此字段是一个只读字段,显示
crmf
作为请求类型。 - 密钥生成请求.此字段为加密和解密证书在密钥生成请求中设置密钥大小选择。
caDualCert.cfg:input.i1.class_id=dualKeyGenInputImpl
A.1.4. 文件签署输入
File-Signing 输入设置字段来签署文件,以显示它尚未被篡改。
这个输入会创建以下字段:
-
密钥生成请求类型.此字段是一个只读字段,显示
crmf
作为请求类型。 - 密钥生成请求.这个输入会添加一个下拉菜单,用于选择在密钥生成请求中使用的密钥大小。
- 签署的文件的 URL.这将提供要签名的文件的位置。
- 签署的文本.这将提供文件名。
caAgentFileSigning.cfg:input.i2.class_id=fileSigningInputImpl
A.1.5. 镜像输入
Image 输入设置字段来签署镜像文件。此输入创建的唯一字段是镜像 URL,它提供了要签名的镜像位置。
A.1.6. 密钥生成输入
Key Generation input 用于注册,在其中生成单个密钥对,通常是基于用户的证书注册。
此输入将以下字段放入注册表单中:
-
密钥生成请求类型.此字段是一个只读字段,显示
crmf
作为请求类型。 - 密钥生成请求.这个输入会添加一个下拉菜单,用于选择在密钥生成请求中使用的密钥大小。
caDualCert.cfg:input.i1.class_id=keyGenInputImpl
A.1.7. nsHKeyCertRequest (Token Key) Input
Token Key 输入用于为代理注册密钥,以便稍后用于基于证书的身份验证。
此输入将以下字段放入注册表单中:
- 令牌密钥 CUID.此字段为令牌设备提供 CUID (上下文唯一的用户 ID)。
- 令牌密钥用户公钥.此字段必须包含令牌用户的公钥。
caTempTokenDeviceKeyEnrollment.cfg:input.i1.class_id=nsHKeyCertReqInputImpl
A.1.8. nsNKeyCertRequest (Token User Key) Input
Token User Key 输入用于为硬件令牌的用户注册密钥,以便代理以后使用令牌进行基于证书的身份验证。此输入将以下字段放入注册表单中:
- 令牌密钥用户 UID.此字段提供令牌设备用户的 LDAP 条目的 UID。
- 令牌密钥用户公钥.此字段必须包含令牌用户的公钥。
caTempTokenUserEncryptionKeyEnrollment.cfg:input.i1.class_id=nsNKeyCertReqInputImpl
A.1.9. 序列号续订输入
Serial Number Renewal Input 用于设置现有证书的序列号,以便 CA 可以拉取原始证书条目并使用信息重新生成证书。输入将 Serial Number 字段插入到注册表单中。
这是需要与续订表单搭配使用的唯一输入;所有其他信息都由证书条目提供。
caTokenUserEncryptionKeyRenewal.cfg:input.i1.class_id=serialNumRenewInputImpl
A.1.10. 主题 DN 输入
主题 DN 输入允许用户输入特定的 DN 设置为证书主题名称,输入会将单个 Subject Name 字段插入到注册表单中。
caAdminCert.cfg:input.i3.class_id=subjectDNInputImpl
A.1.11. 主题名称输入
Subject Name 输入用于注册何时需要从用户收集 DN 参数。参数用于对证书中的主题名称进行公式处理。此输入将以下字段放入注册表单中:
- uid (LDAP 目录用户 ID)
- 电子邮件
- 通用名称 (用户的名称)
-
用户所属 组织单元(组织单元(
ou
) - 机构(组织名称 )
- 国家 (用户所在的国家/地区)
caDualCert.cfg:input.i2.class_id=subjectNameInputImpl
A.1.12. 提交者信息输入
提交者信息输入会收集证书请求者的信息,如名称、电子邮件和电话。
此输入将以下字段放入注册表单中:
- 请求者名称
- 请求者电子邮件
- 请求者电话
caAdminCert.cfg:input.i2.class_id=submitterInfoInputImpl
A.1.13. 通用输入
Generic Input 允许管理员指定任意数量的输入字段,用于处理模式的扩展插件。例如,ccm
和 GUID
参数在模式 Subject Alternative Name Extension 默认插件中使用:
input.i3.class_id=genericInputImpl input.i3.params.gi_display_name0=ccm input.i3.params.gi_param_enable0=true input.i3.params.gi_param_name0=ccm input.i3.params.gi_display_name1=GUID input.i3.params.gi_param_enable1=true input.i3.params.gi_param_name1=GUID input.i3.params.gi_num=2 … policyset.set1.p6.default.class_id=subjectAltNameExtDefaultImpl policyset.set1.p6.default.name=Subject Alternative Name Extension Default policyset.set1.p6.default.params.subjAltExtGNEnable_0=true policyset.set1.p6.default.params.subjAltExtGNEnable_1=true policyset.set1.p6.default.params.subjAltExtPattern_0=$request.ccm$ policyset.set1.p6.default.params.subjAltExtType_0=DNSName policyset.set1.p6.default.params.subjAltExtPattern_1=(Any)1.3.6.1.4.1.311.25.1,0410$request.GUID$ policyset.set1.p6.default.params.subjAltExtType_1=OtherName policyset.set1.p6.default.params.subjAltNameExtCritical=false policyset.set1.p6.default.params.subjAltNameNumGNs=2
A.1.14. 主题备用名称扩展输入
Subject Alternative Name Extension Input 与 Subject Alternative Name Extension Default 插件一起使用。它允许管理员在 URI 中启用编号参数,其模式为 req_san_pattern_
Slack,因此使用 SubjectAltNameExt
扩展。例如,包含以下内容的 URI:
...&req_san_pattern_0=host0.Example.com&req_san_pattern_1=host1.Example.com
从以下配置集将 host0.Example.com
和 host1.Example.com
注入 SubjectAltNameExt
扩展。
input.i3.class_id=subjectAltNameExtInputImpl input.i3.name=subjectAltNameExtInputImpl … policyset.serverCertSet.9.constraint.class_id=noConstraintImpl policyset.serverCertSet.9.constraint.name=No Constraint policyset.serverCertSet.9.default.class_id=subjectAltNameExtDefaultImpl policyset.serverCertSet.9.default.name=Subject Alternative Name Extension Default policyset.serverCertSet.9.default.params.subjAltExtGNEnable_0=true policyset.serverCertSet.9.default.params.subjAltExtPattern_0=$request.req_san_pattern_0$ policyset.serverCertSet.9.default.params.subjAltExtType_0=DNSName policyset.serverCertSet.9.default.params.subjAltExtGNEnable_1=true policyset.serverCertSet.9.default.params.subjAltExtPattern_1=$request.req_san_pattern_1$ policyset.serverCertSet.9.default.params.subjAltExtType_1=DNSName policyset.serverCertSet.9.default.params.subjAltExtGNEnable_2=false policyset.serverCertSet.9.default.params.subjAltExtPattern_2=$request.req_san_pattern_2$ policyset.serverCertSet.9.default.params.subjAltExtType_2=DNSName policyset.serverCertSet.9.default.params.subjAltNameExtCritical=false policyset.serverCertSet.9.default.params.subjAltNameNumGNs=3