9.3. IdM Kerberos KDC が PKINIT を使用でき、CA 証明書が正しく配置されていることの確認
この手順に従って、IdM Kerberos KDC が PKINIT を使用できることを検証する方法と、CA 証明書が正しく配置されていることを検証する方法についても説明します。
前提条件
- スマートカードで使用する IdM サーバーおよびクライアントをインストールして設定している。
- スマートカードリーダーを検出し、スマートカードの内容を表示できる。Testing smart card access on the system を参照してください。
手順
kinit
ユーティリティーを実行し、スマートカードに保存されている証明書を使用してidmuser1
として認証します。$ kinit -X X509_user_identity=PKCS11: idmuser1 MyEID (sctest) PIN:
- スマートカード PIN を入力します。PIN の入力を求められない場合は、スマートカードリーダーを検出してスマートカードの内容を表示できることを確認してください。Testing smart card authentication を参照してください。
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>
オプションを使用して、kinit
コマンドの引数として証明書 ID を指定する必要があります。スマートカードに保存されている証明書の数を確認し、使用している証明書の 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 ページを参照してください。 -
kdestroy
の man ページを参照してください。