5.6.3.3. 为用户获取仅限加密的证书
本节论述了获取只使用加密的证书(使用现有用户签名证书签名的证书)的工作流:
注意
如果用户拥有多个用于不同使用情况的证书(在签名的情况下),用户必须首先获取签名证书。用户拥有签名证书后,就可以使用它进行 概念验证,而无需设置并依赖 CMC 共享 Secret 机制。
有关获取用户的第一个签名证书的详情,请参考 第 5.6.3.2 节 “获取用户的第一个签名证书”。
作为用户:
- 使用存储在网络安全服务(NSS)数据库中或包含用户签名证书和密钥的智能卡中的加密令牌。
- 以 PKCS #10 或 CRMF 格式生成 CSR。注意如果需要密钥归档,请使用 CRMF 格式。
- 生成 CMC 请求。由于这是仅加密的证书,因此私钥无法签名。因此,不包括概念验证(POP)。因此,注册需要两个步骤:如果初始请求成功,则以
EncryptedPOP
控制形式生成 CMC 状态。然后,用户使用响应并生成包含DecryptedPOP
控制的 CMC 请求,并在第二步提交它。- 对于第一步,除了默认参数外,用户还必须在传递到
CMCRequest
工具的配置文件中设置以下参数:identification.enable
witness.sharedSecret
identityProofV2.enable
identityProofV2.hashAlg
identityProofV2.macAlg
popLinkWitnessV2.enable
(CA 需要)popLinkWitnessV2.keyGenAlg
(CA 需要)popLinkWitnessV2.macAlg
(如果需要)request.privKeyId
详情请查看 CMCRequest(1) man page。响应包含:- CMC 加密 POP 控制
- 使用 POP 所需 错误进行
CMCStatusInfoV2
控制 - 请求 ID
- 对于第二个步骤,除了默认参数外,用户还必须在传递到
CMCRequest
工具的配置文件中设置以下参数:decryptedPop.enable
encryptedPopResponseFile
decryptedPopRequestFile
request.privKeyId
详情请查看 CMCRequest(1) man page。
5.6.3.3.1. 使用密钥 Archival 的只加密证书示例 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要执行密钥存档的注册,生成 CMC 请求,该请求包含在 CRMF 请求中包含该用户的加密私钥。以下流程假设该用户已经拥有了签名证书。此签名证书的 nickname 在流程中的配置文件中设置。
注意
以下步骤描述了两个条带的提示与加密密钥一起使用,该密钥无法用于签名。如果您使用可签署证书的密钥,请将
-q POP_SUCCESS
选项而不是 -q POP_NONE
传递给 single-trip 的 CRMFPopClient
实用程序。
有关将
CRMFPoPClient
与 POP_SUCCESS 搭配使用,请参阅 第 5.2.1.3.1 节 “使用 CRMFPopClient
创建带有密钥 Archival 的 CSR” 和 第 5.2.1.3.2 节 “使用 CRMFPopClient
为基于 SharedSecret 的 CMC 创建 CSR”。
- 搜索 KRA 传输证书。例如:
pki cert-find --name KRA_transport_certificate_subject_CN
$ pki cert-find --name KRA_transport_certificate_subject_CN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用您在上一步中检索的 KRA 传输证书的序列号,将证书存储在文件中。例如,要在
/home/user_name/kra.cert
文件中存储带有 12345 序列号的证书:pki cert-show 12345 --output /home/user_name/kra.cert
$ pki cert-show 12345 --output /home/user_name/kra.cert
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用
CRMFPopClient
实用程序:- 使用密钥归档创建 CSR:
- 进入请求证书的用户或实体的证书数据库目录,例如:
cd /home/user_name/
$ cd /home/user_name/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用
CRMFPopClient
实用程序创建 CRMF 请求,其中 RSA 私钥由 KRA 传输证书包装。例如,将请求存储在/home/user_name/crmf.req
文件中:CRMFPopClient -d . -p token_password -n subject_DN -q POP_NONE \ -b /home/user_name/kra.cert -w "AES/CBC/PKCS5Padding" \ -v -o /home/user_name/crmf.req
$ CRMFPopClient -d . -p token_password -n subject_DN -q POP_NONE \ -b /home/user_name/kra.cert -w "AES/CBC/PKCS5Padding" \ -v -o /home/user_name/crmf.req
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录命令显示的私钥的 ID。在第二个行的配置文件中,需要后续步骤中的request.privKeyId
参数作为值。
- 为
CRMRequest
实用程序创建一个配置文件,如/home/user_name/cmc.cfg
,其中包含以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建 CMC 请求:
CMCRequest /home/user_name/cmc.cfg
$ CMCRequest /home/user_name/cmc.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果命令成功,则 CMCRequest 程序会在请求配置文件的output
参数中指定的文件中存储 CMC 请求。 - 为
HttpClient
创建配置文件,如/home/user_name/cmc-submit.cfg
,您要在以后的步骤中使用该文件来向 CA 提交 CMC 请求。在创建的文件中添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 CMC 请求提交到 CA:
HttpClient /home/user_name/cmc-submit.cfg
$ HttpClient /home/user_name/cmc-submit.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果命令成功,HTTPClient 程序会在配置文件的output
参数中指定的文件中存储 CMC 响应。 - 通过将响应文件传递给
CMCResponse
实用程序来验证响应。例如:CMCResponse -d /home/user_name/.dogtag/nssdb/ -i /home/user_name/cmc-response_round_1.bin
$ CMCResponse -d /home/user_name/.dogtag/nssdb/ -i /home/user_name/cmc-response_round_1.bin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果第一个条带成功,CMCResponse
会显示类似如下的输出:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 对于第二个条带,为 Decrypt
edPOP 创建配置文件
,如/home/user_name/cmc_DecryptedPOP.cfg
,您要在以后的步骤中使用。在创建的文件中添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建
DecryptPOP
CMC 请求:CMCRequest /home/user_name/cmc.DecryptedPOP.cfg
$ CMCRequest /home/user_name/cmc.DecryptedPOP.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果命令成功,CM CRequest 程序会在请求配置文件的decryptedPopRequestFile
参数中指定的文件中存储 CMC 请求。 - 为
HttpClient
创建配置文件,如/home/user_name/decrypted_POP_cmc-submit.cfg
,您可以使用该文件来向 CA 提交DecryptedPOP
CMC 请求。在创建的文件中添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将
DecryptedPOP
CMC 请求提交到 CA:HttpClient /home/user_name/decrypted_POP_cmc-submit.cfg
$ HttpClient /home/user_name/decrypted_POP_cmc-submit.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果命令成功,HTTPClient 程序会在配置文件的output
参数中指定的文件中存储 CMC 响应。 - 要将 CMC 响应转换为 PKCS #7 证书链,将 CMC 响应文件传递给
CMCResponse
工具的-i
参数。例如:CMCResponse -i /home/user_name/cmc-response_round_2.bin -o /home/user_name/certs.p7
$ CMCResponse -i /home/user_name/cmc-response_round_2.bin -o /home/user_name/certs.p7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,要以 PEM 格式显示各个证书,请将-v
传递给 实用程序。如果第二个条带成功,则CMCResponse
会显示类似如下的输出:Copy to Clipboard Copied! Toggle word wrap Toggle overflow