Red Hat Training

A Red Hat training course is available for RHEL 8

58.2. 将外部证书转换来加载到 IdM 用户帐户中

本节描述了如何确保在将外部证书添加到用户条目之前正确对其进行编码和格式化。

58.2.1. 先决条件

  • 如果您的证书是由活动目录证书认证机构签发,并使用 PEM 编码的,请确保 PEM 文件已转换为 UNIX 格式。要转换文件,请使用 eponymous 软件包提供的 dos2unix 工具。

58.2.2. 在 IdM CLI 中转换外部证书,并将其加载到 IdM 用户帐户中

IdM CLI 只接受 PEM 证书,从中删除了第一行和最后一行(-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)。

按照以下流程将外部证书转换为 PEM 格式,并使用 IdM CLI 将其添加到 IdM 用户帐户中。

流程

  1. 将证书转换为 PEM 格式:

    • 如果您的证书为 DER 格式:

      $ openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
    • 如果您的文件为 PKCS #12 格式,其常用文件扩展名为 .pfx.p12,并且包含证书、私钥和其他数据,请使用 openssl pkcs12 工具提取证书。提示时,输入保护存储在文件中的私钥的密码:

      $ openssl pkcs12 -in cert_and_key.p12 -clcerts -nokeys -out cert.pem
      Enter Import Password:
  2. 获取管理员凭证:

    $ kinit admin
  3. 使用 IdM CLI 将证书添加到用户帐户中,按照以下方法之一:

    • 在将字符串添加到 ipa user-add-cert前,使用 sed 工具删除 PEM 文件的第一行和最后一行(-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----):

      $ ipa user-add-cert some_user --certificate="$(sed -e '/BEGIN CERTIFICATE/d;/END CERTIFICATE/d' cert.pem)"
    • 将没有第一行和最后一行(-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)的证书文件的内容复制并粘贴到 ipa user-add-cert 命令中:

      $ ipa user-add-cert some_user --certificate=MIIDlzCCAn+gAwIBAgIBATANBgkqhki...
      注意

      如果不首先删除第一行和最后一行(-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----),您无法直接将包含证书的 PEM 文件作为输入传给 ipa user-add-cert 命令:

      $ ipa user-add-cert some_user --cert=some_user_cert.pem

      此命令会导致产生"ipa: ERROR: Base64 decoding failed: Incorrect padding"错误消息。

  4. (可选)检查证书是否被系统接受:

    [idm_user@r8server]$ ipa user-show some_user

58.2.3. 在 IdM web UI 中转换外部证书,以便将其加载到 IdM 用户帐户中

按照以下流程将外部证书转换为 PEM 格式,并将其添加到 IdM Web UI 中的 IdM 用户帐户中。

流程

  1. 使用 CLI,将证书转换为 PEM 格式:

    • 如果您的证书为 DER 格式:

      $ openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
    • 如果您的文件为 PKCS #12 格式,其常用文件扩展名为 .pfx.p12,并且包含证书、私钥和其他数据,请使用 openssl pkcs12 工具提取证书。提示时,输入保护存储在文件中的私钥的密码:

      $ openssl pkcs12 -in cert_and_key.p12 -clcerts -nokeys -out cert.pem
      Enter Import Password:
  2. 在编辑器中打开证书,并复制内容。您可以包含 "-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----" 标头和页脚行,但您不必这样做,因为 IdM Web UI 接受 PEMbase64 格式。
  3. 在 IdM Web UI 中,以安全官身份登录。
  4. 前往 IdentityUserssome_user
  5. 单击 Certificates 旁边的 Add
  6. 将证书的 PEM 格式内容粘贴到打开的窗口中。
  7. Add

如果证书被系统接受,您可以在用户配置文件中看到它列在 Certificates 中。