Red Hat Training

A Red Hat training course is available for RHEL 8

48.2. 将外部证书转换为 IdM 用户帐户

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

先决条件

  • 如果您的证书由 Active Directory 证书认证机构签发并使用 PEM 编码,请确保 PEM 文件已转换为 UNIX 格式。要转换文件,请使用 eponymous 软件包提供的 dos2unix 实用程序。

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

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

流程

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

    • 如果您的证书格式为 DER

      $ openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
    • 如果您的文件采用 PKCS #12 格式,其通用文件名扩展名为 .pfx and.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 命令 ,删除 PEM 文件的第一行和最后一行(-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)

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

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

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

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

      此命令会导致 "ipa: ERROR: Base64 解码 failed: Incorrect padding"错误消息。

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

    [idm_user@r8server]$ ipa user-show some_user