25.8.2. SCEP 経由での IdM CA 署名証明書の要求
以下の例では、SCEP_example SCEP CA 設定を certmonger に追加し、IdM クライアント client.idm.example.com で新しい証明書を要求します。certmonger は、NSS 証明書データベース形式と、OpenSSL などのファイルベース (PEM) 形式の両方をサポートしています。
前提条件
- SCEP URL を知っている。
-
challengePasswordPIN 共有シークレットがある。
手順
CA 設定を
certmongerに追加します。[root@client.idm.example.com ~]# getcert add-scep-ca -c SCEP_example -u SCEP_URL-
-c: CA 設定に必要なニックネーム。後で同じ値を、他のgetcertコマンドと合わせて使用できます。 -u: サーバーの SCEP インターフェイスへの URL。重要HTTPS URL を使用する場合は、
-Rオプションを使用して SCEP サーバー CA 証明書の PEM 形式のコピーの場所も指定する必要があります。
-
CA 設定が正常に追加されたことを確認します。
[root@client.idm.example.com ~]# getcert list-cas -c SCEP_exampleCA 'SCEP_example': is-default: no ca-type: EXTERNAL helper-location: /usr/libexec/certmonger/scep-submit -u http://SCEP_server_enrollment_interface_URL SCEP CA certificate thumbprint (MD5): A67C2D4B 771AC186 FCCA654A 5E55AAF7 SCEP CA certificate thumbprint (SHA1): FBFF096C 6455E8E9 BD55F4A5 5787C43F 1F512279設定が正常に追加された場合、certmonger はリモート CA から CA チェーンを取得します。CA チェーンは、コマンド出力でサムプリントとして表示されます。暗号化されていない HTTP でサーバーにアクセスすると、中間者攻撃を防ぐため、サムプリントを SCEP サーバーに表示されるものと手動で比較します。
CA から証明書を要求します。
NSS を使用している場合:
[root@client.idm.example.com ~]# getcert request -I Example_Task -c SCEP_example -d /etc/pki/nssdb -n ExampleCert -N cn="client.idm.example.com" -L one-time_PIN -D client.idm.example.comオプションを使用して、証明書要求の以下のパラメーターを指定できます。
-
-I: オプション: タスクの名前: 要求の追跡 ID。後でgetcert listコマンドで同じ値を使用できます。 -
-c: 要求を送信する CA 設定。 -
-d: 証明書およびキーを保存する NSS データベースを備えたディレクトリー。 -
-n: NSS データベースで使用される証明書のニックネーム。 -
-N: CSR のサブジェクト名。 -
-L: CA が発行する期限付きの 1 回限りのchallengePasswordPIN。 -
-D: 証明書のサブジェクト代替名。通常はホスト名と同じです。
-
OpenSSL を使用している場合は、以下を行います。
[root@client.idm.example.com ~]# getcert request -I Example_Task -c SCEP_example -f /etc/pki/tls/certs/server.crt -k /etc/pki/tls/private/private.key -N cn="client.idm.example.com" -L one-time_PIN -D client.idm.example.comオプションを使用して、証明書要求の以下のパラメーターを指定できます。
-
-I: オプション: タスクの名前: 要求の追跡 ID。後でgetcert listコマンドで同じ値を使用できます。 -
-c: 要求を送信する CA 設定。 -
-f: 証明書へのストレージパス。 -
-k: キーへのストレージパス。 -
-N: CSR のサブジェクト名。 -
-L: CA が発行する期限付きの 1 回限りのchallengePasswordPIN。 -
-D: 証明書のサブジェクト代替名。通常はホスト名と同じです。
-
検証
証明書が発行され、ローカルデータベースに正しく保存されていることを確認します。
NSS を使用している場合は、以下を入力します。
[root@client.idm.example.com ~]# getcert list -I Example_TaskRequest ID 'Example_Task': status: MONITORING stuck: no key pair storage: type=NSSDB,location='/etc/pki/nssdb',nickname='ExampleCert',token='NSS Certificate DB' certificate: type=NSSDB,location='/etc/pki/nssdb',nickname='ExampleCert',token='NSS Certificate DB' signing request thumbprint (MD5): 503A8EDD DE2BE17E 5BAA3A57 D68C9C1B signing request thumbprint (SHA1): B411ECE4 D45B883A 75A6F14D 7E3037F1 D53625F4 CA: IPA issuer: CN=Certificate Authority,O=EXAMPLE.COM subject: CN=client.idm.example.com,O=EXAMPLE.COM expires: 2018-05-06 10:28:06 UTC key usage: digitalSignature,keyEncipherment eku: iso.org.dod.internet.security.mechanisms.8.2.2 certificate template/profile: IPSECIntermediateOffline pre-save command: post-save command: track: true auto-renew: trueOpenSSL を使用している場合は、以下を入力します。
[root@client.idm.example.com ~]# getcert list -I Example_TaskRequest ID 'Example_Task': status: MONITORING stuck: no key pair storage: type=FILE,location='/etc/pki/tls/private/private.key' certificate: type=FILE,location='/etc/pki/tls/certs/server.crt' CA: IPA issuer: CN=Certificate Authority,O=EXAMPLE.COM subject: CN=client.idm.example.com,O=EXAMPLE.COM expires: 2018-05-06 10:28:06 UTC eku: id-kp-serverAuth,id-kp-clientAuth pre-save command: post-save command: track: true auto-renew: trueステータス MONITORING は、発行した証明書の取得に成功したことを表します。
getcert-list(1)の man ページには、その他の状態とその意味が記載されています。