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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.