搜索

11.2. 请求新的用户证书并将其导出到客户端

download PDF

作为 Identity Management(IdM)管理员,您可以为 IdM 环境中的用户创建证书,并将其导出到您要为用户启用证书验证的 IdM 客户端中。

注意

如果要使用证书进行身份验证的用户已有证书,则不需要按照以下流程操作。

步骤

  1. 可选:创建一个新目录,如 ~/certdb/,并使其成为临时证书数据库。当被要求时,创建一个 NSS 证书 DB 密码来加密在后续步骤中生成的证书的密钥:

    # 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:
  2. 创建证书签名请求(CSR)并将输出重定向到文件中。例如,要为 IDM.EXAMPLE.COM 域中的 idm_user 用户创建一个名称为 certificate_request.csr4096 位 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
  3. 提示时,输入您在使用 certutil 创建临时数据库时输入相同的密码。然后继续随机键入直到被告知停止:

    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:
  4. 将证书请求文件提交到服务器。指定要与新签发的证书关联的 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
  5. 将证书添加到 NSS 数据库。使用 -n 选项设置您在之前创建 CSR 时使用的相同的 nickname,以便证书与 NSS 数据库中的私钥匹配。-t 选项设置信任级别。详情请查看 certutil(1)man page。-i 选项指定输入证书文件。例如,要将带有在 ~/idm_user.pem 文件中定义的 idm_user 别名的证书添加到 ~/certdb/ 数据库的 NSS数据库:

    # certutil -A -d ~/certdb/ -n idm_user -t "P,," -i ~/idm_user.pem
  6. 验证 NSS 数据库中的密钥没有显示 (orphan) 作为其 nickname。例如,验证存储在 ~/certdb/ 数据库中的证书是否为孤立:

    # certutil -K -d ~/certdb/
    < 0> rsa      5ad14d41463b87a095b1896cf0068ccc467df395   NSS Certificate DB:idm_user
  7. 使用 pk12util 命令将证书从 NSS 数据库导出到 PKCS12 格式。例如,要将来自 /root/certdb NSS 数据库的带有 idm_user 别名的证书导出到 ~/idm_user.p12 文件中:

    # 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
  8. 将证书传递给您要启用 idm_user 的证书身份验证的主机:

    # scp ~/idm_user.p12 idm_user@client.idm.example.com:/home/idm_user/
  9. 因为安全原因,在证书传输到的主机上,将存储 .pkcs12 文件的目录的访问权限设置为 'other' 组不能访问它:

    # chmod o-rwx /home/idm_user/
  10. 为安全起见,请从服务器中删除临时 NSS 数据库和 .pkcs12 文件:

    # rm ~/certdb/
    # rm ~/idm_user.p12
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.