10.3. 验证 IdM Kerberos KDC 可以使用 PKINIT 和 CA 证书正确位置
按照以下流程验证 IdM Kerberos KDC 是否可以使用 PKINIT,并描述如何正确验证您的 CA 证书。
先决条件
- 已安装并配置了用于智能卡的 IdM 服务器和客户端。
- 您可以检测智能卡读取器并显示智能卡的内容。请参阅在系统上测试智能卡访问。
步骤
运行
kinit
工具,以idmuser1
使用保存在智能卡中的证书进行验证:$ kinit -X X509_user_identity=PKCS11: idmuser1 MyEID (sctest) PIN:
- 输入您的智能卡 PIN。如果没有提示输入 PIN,请检查您是否可检测智能卡读取器并显示智能卡的内容。请参阅测试智能卡验证。
如果您的 PIN 被接受,系统会提示您输入密码,可能会缺少您的 CA 签名证书。
使用
openssl
命令,验证默认证书捆绑包文件中列出的 CA 链:$ openssl crl2pkcs7 -nocrl -certfile /var/lib/ipa-client/pki/ca-bundle.pem | openssl pkcs7 -print_certs -noout subject=O = IDM.EXAMPLE.COM, CN = Certificate Authority issuer=O = IDM.EXAMPLE.COM, CN = Certificate Authority
验证您的证书的有效性:
查找
idmuser1
的用户身份验证证书 ID:$ pkcs11-tool --list-objects --login [...] Certificate Object; type = X.509 cert label: Certificate subject: DN: O=IDM.EXAMPLE.COM, CN=idmuser1 ID: 01
从智能卡以 DER 格式读取用户证书信息:
$ pkcs11-tool --read-object --id 01 --type cert --output-file cert.der Using slot 0 with a present token (0x0)
将 DER 证书转换为 PEM 格式:
$ openssl x509 -in cert.der -inform DER -out cert.pem -outform PEM
验证证书是否有有效的签发者签名到 CA:
$ openssl verify -CAfile /var/lib/ipa-client/pki/ca-bundle.pem <path>/cert.pem cert.pem: OK
如果您的智能卡包含多个证书,
kinit
可能无法选择正确的证书进行验证。在这种情况下,您需要使用certid=<ID>
选项将证书 ID 指定为kinit
命令的参数。检查保存在智能卡中的证书数量,并获取您要使用的证书 ID:
$ pkcs11-tool --list-objects --type cert --login Using slot 0 with a present token (0x0) Logging in to "MyEID (sctest)". Please enter User PIN: Certificate Object; type = X.509 cert label: Certificate subject: DN: O=IDM.EXAMPLE.COM, CN=idmuser1 ID: 01 Certificate Object; type = X.509 cert label: Second certificate subject: DN: O=IDM.EXAMPLE.COM, CN=ipauser1 ID: 02
使用证书 ID 01 运行
kinit
:$ kinit -X kinit -X X509_user_identity=PKCS11:certid=01 idmuser1 MyEID (sctest) PIN:
运行
klist
查看 Kerberos 凭证缓存的内容:$ klist Ticket cache: KCM:0:11485 Default principal: idmuser1@EXAMPLE.COM Valid starting Expires Service principal 10/04/2021 10:50:04 10/05/2021 10:49:55 krbtgt/EXAMPLE.COM@EXAMPLE.COM
完成后销毁您的活跃 Kerberos 票据:
$ kdestroy -A
其他资源
-
请参阅
kinit
man page。 -
请参阅
kdestroy
man page。