79.11. 请求新的用户证书并将其导出到客户端
作为身份管理(IdM)管理员,您可以配置在 IdM 客户端上运行的 Web 服务器,以请求使用 Web 浏览器访问服务器的用户对特定 IdM 子 CA 发布的证书进行身份验证。按照以下流程,从特定的 IdM 子 CA 请求用户证书,并将主机上的证书和对应的私钥导出到用户希望使用 Web 浏览器访问 Web 服务器的主机上。之后 ,将证书和私钥导入到浏览器中。
流程
(可选)创建新目录,如
~/certdb/
,并使其成为临时证书数据库。当系统提示时,创建一个 NSS 证书数据库密码来加密后续步骤中生成的证书的密钥:# mkdir
~/certdb/
# certutil -N -d~/certdb/
Enter a password which will be used to encrypt your keys. The password should be at least 8 characters long, and should contain at least one non-alphabetic character. Enter new password: Re-enter password:创建证书签名请求(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 -g4096
-nidm_user
-s "CN=idm_user
,O=IDM.EXAMPLE.COM" >certificate_request.csr
出现提示时,输入您在使用
certutil
创建临时数据库时输入的相同密码。然后继续键入 rundlomly 直到通知停止:Enter Password or Pin for "NSS Certificate DB": A random seed must be generated that will be used in the creation of your key. One of the easiest ways to create a random seed is to use the timing of keystrokes on a keyboard. To begin, type keys on the keyboard until this progress meter is full. DO NOT USE THE AUTOREPEAT FUNCTION ON YOUR KEYBOARD! Continue typing until the progress meter is full:
将证书请求文件提交到服务器。指定要与新发布的证书关联的 Kerberos 主体、存储证书的输出文件,以及可选的证书配置集。指定您要签发证书的 IdM 子 CA。例如,要获取
IECUserRoles
配置集的证书,带有添加的用户角色扩展的配置文件,idm_user
@IDM.EXAMPLE.COM
主体来自webclient-ca
,并将证书保存到~/idm_user.pem
文件中:# ipa cert-request
certificate_request.csr
--principal=idm_user
@IDM.EXAMPLE.COM
--profile-id=IECUserRoles
--ca=webclient-ca
--certificate-out=~/idm_user.pem
将证书添加到 NSS 数据库。使用
-n
选项设置之前创建 CSR 时所用的相同 nickname,以便该证书与 NSS 数据库中的私钥相匹配。t
选项设置信任级别。详情请查看 certutil(1)man page。i 选项指定
输入证书文件。例如,要将一个具有idm_user
昵称的证书添加到 NSS 数据库中,该证书存储在~/certdb/
数据库中的~/idm_user.pem
文件中:# certutil -A -d
~/certdb/
-nidm_user
-t "P,," -i~/idm_user.pem
验证 NSS 数据库中的密钥是否未显示
(或称为)
作为其 nickname。例如,验证存储在~/certdb/ 数据库中
的证书没有被孤立:# certutil -K -d
~/certdb/
< 0> rsa 5ad14d41463b87a095b1896cf0068ccc467df395 NSS Certificate DB:idm_user使用
pk12util
命令将证书从 NSS 数据库导出到 PKCS12 格式。例如,将/root/certdb
NSS 数据库中的idm_user
nickname 的证书导出到~/idm_user.p12
文件:# pk12util -d
~/certdb
-o~/idm_user.p12
-nidm_user
Enter Password or Pin for "NSS Certificate DB": Enter password for PKCS12 file: Re-enter password: pk12util: PKCS12 EXPORT SUCCESSFUL将证书传输到您要启用
idm_user
的证书身份验证的主机:# scp
~/idm_user.p12
idm_user@client.idm.example.com:/home/idm_user/
在传输了证书的主机上,出于安全原因使 'pkcs12 文件被 'other' 组无法访问的目录:
# chmod o-rwx
/home/idm_user/
出于安全考虑,请从服务器中删除临时 NSS 数据库和 .pkcs12 文件:
# rm
~/certdb/
# rm~/idm_user.p12