4.2. 转换外部证书以加载到 IdM 用户帐户
本节论述了如何确保在将外部证书添加到用户条目之前其被正确编码和格式化。
4.2.1. 先决条件
-
如果您的证书由活动目录证书认证机构签发,并使用
PEM
编码的,请确保PEM
文件已转换为UNIX
格式。要转换文件,请使用 eponymous 软件包提供的dos2unix
工具。
4.2.2. 在 IdM CLI 中转换外部证书,并将其加载到 IdM 用户帐户
IdM CLI
只接受 PEM
证书,第一行和最后一行(-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)已从中移除。
按照以下流程,将外部证书转换为 PEM
格式,并使用 IdM CLI 将其添加到 IdM 用户帐户。
流程
将证书转换为
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:
获得管理员凭证:
$ kinit admin
根据以下方法之一,使用
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...
注意您不能直接将包含证书的
PEM
文件作为输入传给ipa user-add-cert
命令,无需先删除第一行和最后一行(-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----):$ ipa user-add-cert some_user --cert=some_user_cert.pem
此命令会导致 "ipa: ERROR: Base64 decoding failed: Incorrect padding"错误消息。
(可选)要检查系统是否接受了证书:
[idm_user@r8server]$ ipa user-show some_user
4.2.3. 在 IdM Web UI 中转换外部证书以加载到 IdM 用户帐户
按照以下流程将外部证书转换为 PEM
格式,并在 IdM Web UI 中将其添加到 IdM 用户帐户。
流程
使用
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:
-
在编辑器中打开证书,并复制内容。您可以包含 "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----" 页眉和页脚行,但不必这样做,因为
PEM
和base64
格式已被 IdM Web UI 接受了。 - 在 IdM Web UI 中,以安全官员身份登录。
-
前往
Identity
→Users
→some_user
。 -
单击
Certificates
旁边的Add
。 - 将证书的 PEM 格式内容粘贴到打开的窗口中。
-
单击
Add
。
如果证书被系统接受了,您可以看到其会在用户配置文件中的 Certificates
中列出。