8.4. CMC SharedSecret 身份验证
使用 Shared Secret 功能让用户能够向服务器发送未签名的 CMC 请求。例如,如果用户想要获取第一个签名证书,则需要这样做。之后,这个签名证书可用于为此用户的其他证书签名。
8.4.1. 创建共享 Secret 令牌
在 2.4.1.1.2.2.4 中,共享 Secret 工作流 、规划、安装和部署指南(Common Standard Edition) 描述了使用共享 Secret 令牌时的工作流。根据情况,最终用户或管理员创建 Shared Secret Token。
要使用 Shared Secret 令牌,证书系统必须使用 RSA 颁发保护证书。详情请参阅 规划、安装和部署指南(通用标准版) 中的 9.6.3 启用 CMC 共享 Secret 功能。
要创建共享 Secret Token,请输入:
# CMCSharedToken -d /home/user_name/.dogtag/ -p NSS_password \ -s "CMC_shared_secret" -o /home/user_name/CMC_shared_token.b64 \ -n "issuance_protection_certificate_nickname"
例如:
# CMCSharedToken -d /home/jsmith/certs_db -p SECret.123 -s RevocationShrTok -o /home/jsmith/RevocationShrTok.b64 -n "IssuanceProtectionSystemCert" --oaep Encrypted Secret Data: MIIBFgSCAQCXIpkQ2CUy/YOUe3MOl/gIAvaxOH5mJ7VvNjX2SePTDn3S6sYUj0pnQdL1dZO6yBx0HDQ2u28gi84eHnnRTaJz76QYYkZ3Q1ttnTCY4+PtZro3AOa3B4adfqLRRdJiHqFPYzOsZMbsFPesF7f3d0v4oeRi1QkYPK9urn/ajlAi1mrAZRFowqQu5I14Yc+CgwI7AG5cTPcyvPkgwg/f7tPkfK8DOCICEvG7Jwequ+W7qgFVHlgmCl+72PG9VbMXt36Ps46TnXStJRW3nI0ART0LttfMBy9aFLcb45g2d7roFDB75TcK5ZrEcnldaP3IOgsl1O6aNzigMNCkggJSMuKxBBDTViXVFGz3BhMJyzH1uSZ1 Storing Base64 secret data into /home/jsmith/RevocationShrTok.b64
令牌将通过 issuance 保护的公钥加密,并以 Base64 格式的
RevocationShrTok.b64
来存储。将值转换为一行:# sed -e :a -e 'N;s/\r\n//;ba' /home/jsmith/RevocationShrTok.b64 MIIBFgSCAQCXIpkQ2CUy/YOUe3MOl/gIAvaxOH5mJ7VvNjX2SePTDn3S6sYUj0pnQdL1dZO6yBx0HDQ2u28gi84eHnnRTaJz76QYYkZ3Q1ttnTCY4+PtZro3AOa3B4adfqLRRdJiHqFPYzOsZMbsFPesF7f3d0v4oeRi1QkYPK9urn/ajlAi1mrAZRFowqQu5I14Yc+CgwI7AG5cTPcyvPkgwg/f7tPkfK8DOCICEvG7Jwequ+W7qgFVHlgmCl+72PG9VbMXt36Ps46TnXStJRW3nI0ART0LttfMBy9aFLcb45g2d7roFDB75TcK5ZrEcnldaP3IOgsl1O6aNzigMNCkggJSMuKxBBDTViXVFGz3BhMJyzH1uSZ1
如果使用 HSM,还要将 -h token_name 选项传给命令来设置 HSM 安全令牌名称。
有关 CMCSharedToken
工具的详情,请查看 CMCSharedToken (8)
手册页。
生成的令牌会被加密,只有生成的用户知道密码。如果 CA 管理员为用户生成令牌,管理员必须使用安全的方式向用户提供密码。
创建共享令牌后,管理员必须将令牌添加到用户或证书记录中。详情请查看 第 8.4.2 节 “设置 CMC 共享 Secret”。
8.4.2. 设置 CMC 共享 Secret
根据计划的操作,管理员必须在用户或证书的 LDAP 条目中生成共享 Secret Token。
有关工作流和使用共享 Secret 的详细信息,请参阅 规划、安装和部署指南中的 2.4.1.1.2.2.4 共享 Secret 工作流 (Common criteria Edition)。
将 CMC Shared Secret 添加到证书注册的用户条目中
要使用 Shared Secret Token 进行证书注册,请以管理员身份将其保存在用户的 LDAP 条目中:
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: uid=user_name,ou=People,dc=example,dc=com changetype: modify replace: shrTok shrTok: base64-encoded_token
将 CMC Shared Secret 添加到证书撤销的证书
要将 Shared Secret Token 用于证书撤销,请在 LDAP 中证书记录的
metaInfo
属性下将令牌存储为revShrTok
属性下的管理员:# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=certificate_id,ou=certificateRepository,ou=ca,o=pki-tomcat-CA changetype: modify add: metaInfo metaInfo: revShrTok:base64-encoded_token
例如:
# LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapmodify -x -D 'cn=Directory Manager' -H ldaps://rhds11.example.com:7636 -w SECret.123 << EOF > dn: cn=119255066,ou=certificateRepository,ou=ca,dc=RSA-SubCA > changetype: modify > add: metaInfo > metaInfo: revShrTok:MIIBFgSCAQCXIpkQ2CUy/YOUe3MOl/gIAvaxOH5mJ7VvNjX2SePTDn3S6sYUj0pnQdL1dZO6yBx0HDQ2u28gi84eHnnRTaJz76QYYkZ3Q1ttnTCY4+PtZro3AOa3B4adfqLRRdJiHqFPYzOsZMbsFPesF7f3d0v4oeRi1QkYPK9urn/ajlAi1mrAZRFowqQu5I14Yc+CgwI7AG5cTPcyvPkgwg/f7tPkfK8DOCICEvG7Jwequ+W7qgFVHlgmCl+72PG9VbMXt36Ps46TnXStJRW3nI0ART0LttfMBy9aFLcb45g2d7roFDB75TcK5ZrEcnldaP3IOgsl1O6aNzigMNCkggJSMuKxBBDTViXVFGz3BhMJyzH1uSZ1 > EOF modifying entry "cn=119255066,ou=certificateRepository,ou=ca,dc=RSA-SubCA"
现在,要执行基于未签名的共享Token 的 CMC 撤销请求,请注意,在 CMC 撤销请求配置文件中:
- 未签名情况下不需要 nickname,它将被忽略
以下参数必须包含有效的值:
revRequest.enable=true revRequest.serial=119255066 revRequest.reason=unspecified revRequest.comment=user test revocation revRequest.issuer=CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA revRequest.sharedSecret=RevocationShrTok