16.2. 请求新的用户证书并将其导出到客户端
作为 RHEL 身份管理(IdM)管理员,您可以为 IdM 环境中的用户创建证书,并将其导出到您要为用户启用证书身份验证的 IdM 客户端。
如果要使用证书进行身份验证的用户已有证书,则不需要按照此路程操作。
流程
可选:创建一个新目录,如
~/certdb/
,并使其成为临时证书数据库。当系统提示时,创建一个 NSS 证书数据库密码来加密后续步骤中生成的证书的密钥:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建证书签名请求(CSR),并将输出重定向到文件。例如,要为
IDM.EXAMPLE.COM
域中的idm_user
用户创建一个名称为certificate_request.csr
的4096
位 CSR,请将证书私钥的昵称设为idm_user
以便于查找,并将主题设为CN=idm_user,O=IDM.EXAMPLE.COM
:certutil -R -d ~/certdb/ -a -g 4096 -n idm_user -s "CN=idm_user,O=IDM.EXAMPLE.COM" > certificate_request.csr
# certutil -R -d ~/certdb/ -a -g 4096 -n idm_user -s "CN=idm_user,O=IDM.EXAMPLE.COM" > certificate_request.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出现提示时,输入您在使用
certutil
创建临时数据库时输入的相同密码。然后继续键入随机输入,直到被告知停止:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将证书请求文件提交到服务器。指定要与新发布的证书关联的 Kerberos 主体、存储证书的输出文件,以及可选的证书配置集。例如,为
idm_user
@IDM.EXAMPLE.COM
获取IECUserRoles
配置集(添加了用户角色扩展的配置集)的证书,把它保存在~/idm_user.pem
文件中:ipa cert-request certificate_request.csr --principal=idm_user@IDM.EXAMPLE.COM --profile-id=IECUserRoles --certificate-out=~/idm_user.pem
# ipa cert-request certificate_request.csr --principal=idm_user@IDM.EXAMPLE.COM --profile-id=IECUserRoles --certificate-out=~/idm_user.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将证书添加到 NSS 数据库。使用
-n
选项设置之前创建 CSR 时使用的相同 nickname,以便证书与 NSS 数据库中的私钥匹配。-t
选项设置信任级别。详情请查看 certutil(1)man page。The-i
选项指定输入证书文件。例如,要将带有在~/idm_user.pem
文件中定义的idm_user
别名的证书添加到~/certdb/
数据库的 NSS数据库:certutil -A -d ~/certdb/ -n idm_user -t "P,," -i ~/idm_user.pem
# certutil -A -d ~/certdb/ -n idm_user -t "P,," -i ~/idm_user.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 NSS 数据库中的密钥是否未显示
(孤立)
作为其 nickname。例如,验证存储在~/certdb/
数据库中 的证书没有被孤立:certutil -K -d ~/certdb/
# certutil -K -d ~/certdb/ < 0> rsa 5ad14d41463b87a095b1896cf0068ccc467df395 NSS Certificate DB:idm_user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
pk12util
命令将证书从 NSS 数据库导出到 PKCS12 格式。例如,要将来自/root/certdb
NSS 数据库的带有idm_user
别名的证书导出到~/idm_user.p12
文件中:pk12util -d ~/certdb -o ~/idm_user.p12 -n idm_user
# pk12util -d ~/certdb -o ~/idm_user.p12 -n idm_user Enter Password or Pin for "NSS Certificate DB": Enter password for PKCS12 file: Re-enter password: pk12util: PKCS12 EXPORT SUCCESSFUL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将证书传输到您要启用
idm_user
的证书身份验证的主机:scp ~/idm_user.p12 idm_user@client.idm.example.com:/home/idm_user/
# scp ~/idm_user.p12 idm_user@client.idm.example.com:/home/idm_user/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在传输了证书的主机上,出于安全原因使 'pkcs12 文件被 'other' 组无法访问的目录:
chmod o-rwx /home/idm_user/
# chmod o-rwx /home/idm_user/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出于安全考虑,请从服务器中删除临时 NSS 数据库和 .pkcs12 文件:
rm ~/certdb/ rm ~/idm_user.p12
# rm ~/certdb/ # rm ~/idm_user.p12
Copy to Clipboard Copied! Toggle word wrap Toggle overflow