3.7. 管理主题名称和主题备用名称
证书的主题名称是 可分辨名称(DN),包含识别签发证书的实体的信息。此主题名称可以从标准 LDAP 目录组件构建,如通用名称和组织单元。这些组件在 X.500 中定义。除了 - 主题名称甚至代替 - 主题名称外,证书还可以具有 主题替代名称,这是包含 X.500 中未定义的额外信息的扩展类型。
可以自定义主题名称和主题备用名称的命名组件。
如果主题名称为空,则必须存在 Subject Alternative Name 扩展并标记为 critical。
3.7.1. 在主题名称中使用请求者 CN 或 UID 复制链接链接已复制到粘贴板!
证书请求的 cn
或 uid
值可用于构建签发的证书的主题名称。本节演示了一个配置集,它在证书请求中存在 Subject Name Constraint 中需要指定 naming 属性(CN 或 UID)。如果缺少 naming 属性,则请求将被拒绝。
此配置有两个部分:
-
CN 或 UID 格式在 Subject Name Constraint 中的
模式
配置中设置。 - 主题 DN 的格式(包括 CN 或 UID 令牌)和证书的特定后缀在 Subject Name Default 中设置。
例如,要在主题 DN 中使用 CN:
在本例中,如果请求与 cn=John Smith
的 CN 中出现,则使用 cn=John Smith,DC=example, DC=com
的主题 DN 发布证书。如果请求进入,但 UID uid=jsmith
且没有 CN,则请求将被拒绝。
相同的配置用于将请求者 UID 拉取到主题 DN 中:
pattern
参数的格式包含在 第 B.2.11 节 “主题名称约束” 和 第 B.1.27 节 “主题名称默认” 中。
3.7.2. 将 LDAP 目录属性值和其他信息插入到 subject alt name 中 复制链接链接已复制到粘贴板!
可以使用 Subject Alt Name Extension Default 配置中的匹配变量,将来自 LDAP 目录或请求者提交的信息插入到证书的主题备用名称中。此默认设置信息的类型(格式),然后设置用于检索信息的匹配模式(variable)。例如:
这会插入请求者的电子邮件作为主题备用名称中的第一个 CN 组件。要使用其他组件,以数字方式递增 Type_
、Pattern_
和 Enable_
值,如 Type_1
。
另外,在 第 B.1.23 节 “主题备用名称扩展默认” 中还提供了配置主题备用名称。
将 LDAP 组件插入到证书的主题 alt 名称中:
插入 LDAP 属性值需要启用用户目录身份验证插件
SharedSecret
。打开 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
已被弃用。- 在左侧导航树中选择 Authentication。
-
在 Authentication Instance 选项卡中,点 ,并添加
SharedSecret
身份验证插件的实例。 输入以下信息:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存新的插件实例。
有关设置 CMC 共享令牌的详情,请参考 第 11.4.2 节 “设置 CMC 共享 Secret”。
ldapStringAttributes
参数指示身份验证插件从用户的 LDAP 条目读取mail
属性的值,并将该值放在证书请求中。当值位于请求中时,证书配置文件策略可以设置为插入扩展值的值。dnpattern
参数的格式包含在 第 B.2.11 节 “主题名称约束” 和 第 B.1.27 节 “主题名称默认” 中。要启用 CA 在证书扩展中插入 LDAP 属性值,请编辑配置集的配置文件,并为扩展插入策略设置参数。例如,要在
caFullCMCSharedTokenCert
配置集中的 Subject Alternative Name 扩展中插入mail
属性值,请更改以下代码:policyset.setID.8.default.params.subjAltExtPattern_0=$request.auth_token.mail[0]$
policyset.setID.8.default.params.subjAltExtPattern_0=$request.auth_token.mail[0]$
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关编辑配置集的详情,请参考 第 3.2.2.2 节 “使用原始格式编辑证书配置文件”。
重启 CA。
systemctl restart pki-tomcatd-nuxwdog@instance_name.service
# systemctl restart pki-tomcatd-nuxwdog@instance_name.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在本例中,通过 caFullCMCSharedTokenCert
配置文件注册表单提交的证书将添加 Subject Alternative Name 扩展,并添加了请求者的 mail
LDAP 属性的值。例如:
Identifier: Subject Alternative Name - 2.5.29.17 Critical: no Value: RFC822Name: jsmith@example.com
Identifier: Subject Alternative Name - 2.5.29.17
Critical: no
Value:
RFC822Name: jsmith@example.com
通过将在策略集中的任何 Pattern_
参数中设置为令牌($X$),可以将许多属性自动插入到证书中。常见令牌列在 表 3.1 “用于填充证书的变量” 中,默认配置集包含如何使用这些令牌的示例。
策略设置令牌 | 描述 |
---|---|
$request.auth_token.cn[0]$ |
请求证书的用户的 LDAP 通用名称( |
$request.auth_token.mail[0]$ |
请求证书的用户的 LDAP 电子邮件( |
$request.auth_token.tokencertsubject$ | 证书主题名称。 |
$request.auth_token.uid$ |
请求证书的用户的 LDAP 用户 ID ( |
$request.auth_token.userdn$ | 请求证书的用户的用户 DN。 |
$request.auth_token.userid$ | 请求证书的用户的用户 ID 属性的值。 |
$request.uid$ | 请求证书的用户的用户 ID 属性的值。 |
$request.requestor_email$ | 提交请求的人员的电子邮件地址。 |
$request.requestor_name$ | 提交请求的人员。 |
$request.upn$ | Microsoft UPN。它具有格式 (UTF8String) 1.3.6.1.4.1.311.20.2.3,$request.upn$。 |
$server.source$ | 指示服务器在主题名称中生成版本 4 UUID (随机号)组件。这始终具有格式 (IA5String) 1.2.3.4,$server.source$。 |
$request.auth_token.user$ | 当请求由 TPS 提交时使用。请求证书的 TPS 子系统可信管理器。 |
$request.subject$ |
当请求由 TPS 提交时使用。TPS 已解析和请求的实体的主题名称 DN。例如, |
3.7.3. 在 SAN 扩展中使用 CN 属性 复制链接链接已复制到粘贴板!
多个客户端应用程序和库不再支持将 Subject DN 的通用名称(CN)属性用于域名验证,该属性已在 RFC 2818 中弃用。相反,这些应用程序和库在证书请求中使用 dNSName
Subject Alternative Name (SAN)值。
证书系统仅当与 RFC 1034 第 3.5 节中的首选名称语法匹配且具有多个组件时,才会复制 CN。此外,还会保留现有的 SAN 值。例如,基于 CN 的 dNSName
值会附加到现有 SAN 中。
要将证书系统配置为使用 SAN 扩展中的 CN 属性,请编辑用于发布证书的证书配置文件。例如:
禁用配置集:
pki -c password -p 8080 \ -n "PKI Administrator for example.com" ca-profile-disable profile_name
# pki -c password -p 8080 \ -n "PKI Administrator for example.com" ca-profile-disable profile_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑配置集:
pki -c password -p 8080 \ -n "PKI Administrator for example.com" ca-profile-edit profile_name
# pki -c password -p 8080 \ -n "PKI Administrator for example.com" ca-profile-edit profile_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用配置集的唯一设置号添加以下配置。例如:
policyset.serverCertSet.12.constraint.class_id=noConstraintImpl policyset.serverCertSet.12.constraint.name=No Constraint policyset.serverCertSet.12.default.class_id=commonNameToSANDefaultImpl policyset.serverCertSet.12.default.name=Copy Common Name to Subject
policyset.serverCertSet.12.constraint.class_id=noConstraintImpl policyset.serverCertSet.12.constraint.name=No Constraint policyset.serverCertSet.12.default.class_id=commonNameToSANDefaultImpl policyset.serverCertSet.12.default.name=Copy Common Name to Subject
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上例使用
12
作为集合号。将新策略设置号附加到
policyset.userCertSet.list
参数。例如:policyset.userCertSet.list=1,10,2,3,4,5,6,7,8,9,12
policyset.userCertSet.list=1,10,2,3,4,5,6,7,8,9,12
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存配置集。
启用配置集:
pki -c password -p 8080 \ -n "PKI Administrator for example.com" ca-profile-enable profile_name
# pki -c password -p 8080 \ -n "PKI Administrator for example.com" ca-profile-enable profile_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
所有默认服务器配置文件都包含 commonNameToSANDefaultImpl
默认。
3.7.4. 接受 CSR 中的 SAN 扩展 复制链接链接已复制到粘贴板!
在某些环境中,管理员希望在证书签名请求(CSR)中指定主题备用名称(SAN)扩展。
3.7.4.1. 配置配置文件以从 CSR 检索 SAN 复制链接链接已复制到粘贴板!
要允许从 CSR 检索 SAN,请使用用户扩展默认值。详情请查看 第 B.1.32 节 “用户 Supplied 扩展默认”。
SAN 扩展可以包含一个或多个 SAN。
要接受来自 CSR 的 SAN,请在配置集中添加以下默认和约束,如 caCMCECserverCert
:
3.7.4.2. 使用 SAN 生成 CSR 复制链接链接已复制到粘贴板!
例如,使用 certutil
工具生成带有两个 SAN 的 CSR:
certutil -R -k ec -q nistp256 -d . -s "cn=Example Multiple SANs" --extSAN dns:www.example.com,dns:www.example.org -a -o /root/request.csr.p10
# certutil -R -k ec -q nistp256 -d . -s "cn=Example Multiple SANs" --extSAN dns:www.example.com,dns:www.example.org -a -o /root/request.csr.p10
生成 CSR 后,请按照 第 5.5.2 节 “CMC 注册过程” 中描述的步骤完成 CMC 注册。