3.7. 管理主题名称和主题备用名称

证书的 主题名称 是一个可分辨的名称(DN),其中包含标识签发证书的实体的信息。此主题名称可从标准 LDAP 目录组件(如通用名称和组织单元)构建。这些组件在 X.500 中定义。除了 - 甚至是是放置 - 主题名称,证书还可具有 主题备用名称,这是为证书设置的一种扩展集,其中包含未在 X.500 中定义的额外信息。
可以自定义主题名称和主题备用名称的命名组件。
重要
如果主题名称为空,则主题备用名称必须存在并标记为"关键"。

3.7.1. 在 Subject Name 中使用 Requester CN 或 UID

证书请求中的 cnuid 值可以用来构建签发的证书的主题名称。本节演示了一个配置集,它需要在 Subject Name Constraint 中指定 naming 属性(CN 或 UID)。如果缺少 naming 属性,请求将被拒绝。
这个配置有两个部分:
  • CN 或 UID 格式在 Subject Name Constraint 中的 模式 配置中设定。
  • 主题 DN 的格式(包括 CN 或 UID 令牌)和证书的特定后缀在 Subject Name Default 中设定。
例如,在主题 DN 中使用 CN:
policyset.serverCertSet.1.constraint.class_id=subjectNameConstraintImpl
policyset.serverCertSet.1.constraint.name=Subject Name Constraint
policyset.serverCertSet.1.constraint.params.pattern=CN=[^,]+,.+
policyset.serverCertSet.1.constraint.params.accept=true
policyset.serverCertSet.1.default.class_id=subjectNameDefaultImpl
policyset.serverCertSet.1.default.name=Subject Name Default
policyset.serverCertSet.1.default.params.name=CN=$request.req_subject_name.cn$,DC=example, DC=com
在本例中,如果一个请求进入了 CN of cn=John Smith,则证书将使用 cn=John Smith,DC=example, DC=com 的主题 DN 颁发。如果请求来自 uid=jsmith 且无 CN,则请求将被拒绝。
相同的配置用于将请求者 UID 拉取到主题 DN 中:
policyset.serverCertSet.1.constraint.class_id=subjectNameConstraintImpl
policyset.serverCertSet.1.constraint.name=Subject Name Constraint
policyset.serverCertSet.1.constraint.params.pattern=UID=[^,]+,.+
policyset.serverCertSet.1.constraint.params.accept=true
policyset.serverCertSet.1.default.class_id=subjectNameDefaultImpl
policyset.serverCertSet.1.default.name=Subject Name Default
policyset.serverCertSet.1.default.params.name=UID=$request.req_subject_name.uid$,DC=example, DC=com