5.2. 証明書署名リクエスト (CSR) の作成


計画、インストール、デプロイメントのガイド (Common Criteria Edition) の 2.4.1.1.2.2 CMC による登録 セクションで説明されているように、CMCRequest ユーティリティーは、PKCS #10 および CRMF 形式の証明書署名要求 (CSR) を受け入れます。

Red Hat Certificate System は、以下のユーティリティーを使用した CSR の作成をサポートします。

  • certutil: PKCS #10 要求の作成をサポートします。
  • PKCS10Client: PKCS #10 要求の作成をサポートします。
  • CRMFPopClient: CRMF 要求の作成をサポートします。

次のセクションでは、これらのユーティリティーを機能豊富な登録プロファイルフレームワークで使用する方法の例をいくつか示します。

注記

サーバー側のキー生成はブラウザーの EE ポータルで提供されているように見えますが、この機能は最新ブラウザーにおけるキー生成サポートの削除がもたらす不便さを CS サーバー上でキー生成 (キーは安全にクライアントに転送されます) を可能にすることで克服するための機能であるため、これは Common Criteria リリースでは評価されません。

5.2.1. certutil で CSR を作成する

このセクションでは、certutil ユーティリティーを使用して CSR を作成する方法を説明します。

certutil の使用の詳細は、以下を参照してください。

  • certutil(1) の man ページ
  • certutil --help コマンドの出力

5.2.1.1. certutil で EC キーを使用する CSR を作成する

以下の手順は、certutil ユーティリティーを使用して Elliptic Curve(EC) キーペアと CSR を作成する方法を示しています。

  1. 証明書が要求されるユーザーまたはエンティティーの証明書データベースディレクトリーに移動します。以下に例を示します。

    $ cd /user_or_entity_database_directory/
  2. バイナリー CSR を作成し、request.csr ファイルに保存します。

    $ certutil -d . -R -k ec -q nistp256 -s "CN=subject_name" -o request-bin.csr

    プロンプトが表示されたら、必要な NSS データベースのパスワードを入力します。

    パラメーターの詳細は、certutil(1) の man ページを参照してください。

  3. 作成したバイナリー形式の CSR を PEM 形式に変換します。

    $ BtoA request-bin.csr request.csr
  4. 必要に応じて、CSR ファイルが正しいことを確認します。

    $ cat request.csr
    
    		MIICbTCCAVUCAQAwKDEQMA4GA1UEChMHRXhhbXBsZTEUMBIGA1UEAxMLZXhhbXBs
    		...

    これは、PKCS#10 PEM 証明書要求です。

  5. 次の手順については、「CMC 登録プロセス」 を参照してください。ただし、証明書要求の作成に関する手順はスキップしてください。

5.2.1.2. certutil でユーザー定義拡張を使用する CSR を作成する

以下の手順は、certutil ユーティリティーを使用してユーザー定義の拡張で CSR を作成する方法を示しています。

登録要求は、CA で定義された登録プロファイルにより制限されることに注意してください。例B.3「CSR 内の複数の User Supplied 拡張」 を参照してください。

  1. 証明書が要求されるユーザーまたはエンティティーの証明書データベースディレクトリーに移動します。以下に例を示します。

    $ cd /user_or_entity_database_directory/
  2. ユーザー定義の Extended Key Usage 拡張とユーザー定義の Key Usage 拡張で CSR を作成し、これを request.csr ファイルに保存します。

    $ certutil -d . -R -k rsa -g 1024 -s "CN=subject_name" --keyUsage keyEncipherment,dataEncipherment,critical --extKeyUsage timeStamp,msTrustListSign,critical -a -o request.csr

    プロンプトが表示されたら、必要な NSS データベースのパスワードを入力します。

    パラメーターの詳細は、certutil(1) の man ページを参照してください。

  3. 必要に応じて、CSR ファイルが正しいことを確認します。

    $ cat request.csr
    
    		Certificate request generated by Netscape certutil
    		Phone: (not specified)
    
    		Common Name: user 4-2-1-2
    		Email: (not specified)
    		Organization: (not specified)
    		State: (not specified)
    		Country: (not specified)

    これは、PKCS#10 PEM 証明書要求です。

    注記

    上記の certutil コマンドにはテキスト形式の CSR の -a オプションが含まれているため、続行する前にヘッダー情報を必ず削除してください。-a を省略した場合は、上記の certutil で EC キーを使用する CSR を作成する」 セクションで示すとおり、必ず BtoA ツールを使用してバイナリー形式からテキスト形式に変換してください。上記の certutil コマンドにはテキスト形式の CSR の -a オプションが含まれているため、続行する前にヘッダー情報を必ず削除してください。-a を省略した場合は、必ず BtoA を使用してバイナリー形式からテキスト形式に変換してください。これについては、上記の「5.2.1.1 certutil で EC キーを使用する CSR を作成する」を参照してください。

次の手順については、「CMC 登録プロセス」 を参照してください。ただし、証明書要求の作成に関する手順はスキップしてください。

5.2.2. PKCS10Client を使用して CSR を作成する

このセクションでは、PKCS10Client ユーティリティーを使用して CSR を作成する方法の例を示します。

PKCS10Client の使用に関する詳細は、以下を参照してください。

  • PKCS10Client(1) の man ページ
  • PKCS10Client --help コマンドの出力

5.2.2.1. PKCS10Client を使用して CSR を作成する

以下の手順では、PKCS10Client ユーティリティーを使用して Elliptic Curve (EC) キーペアと CSR を作成する方法を説明します。

  1. 証明書が要求されるユーザーまたはエンティティーの証明書データベースディレクトリーに移動します。以下に例を示します。

    $ cd /user_or_entity_database_directory/
  2. CSR を作成し、example.csr ファイルに保存します。

    $ PKCS10Client -d . -p NSS_password -a ec -c nistp256 -o example.csr -n "CN=subject_name"

    パラメーターの詳細は、PKCS10Client(1) の man ページを参照してください。

  3. 必要に応じて、CSR ファイルが正しいことを確認します。

    $ cat example.csr
    
    		-----BEGIN CERTIFICATE REQUEST-----
    		MIICzzCCAbcCAQAwgYkx
    		...
    		-----END CERTIFICATE REQUEST-----

次の手順については、「CMC 登録プロセス」 を参照してください。

5.2.2.2. PKCS10Client を使用して SharedSecret ベースの CMC の CSR を作成する

以下の手順では、PKCS10Client ユーティリティーを使用して、SharedSecret ベースの CMC 用の RSA キーペアと CSR を作成する方法を説明します。これは、デフォルトでは caFullCMCSharedTokenCert プロファイルと caECFullCMCSharedTokenCert プロファイルで処理される CMC 共有シークレット認証方法にのみ使用します。

  1. 証明書が要求されるユーザーまたはエンティティーの証明書データベースディレクトリーに移動します。以下に例を示します。

    $ cd /user_or_entity_database_directory/
  2. CSR を作成し、example.csr ファイルに保存します。

    $ PKCS10Client -d . -p NSS_password -o example.csr -y true -n "CN=subject_name"

    出力で生成されたキーペアの秘密鍵 ID は、<CSR output file name>.keyId の名前形式を持つファイルに保存されます。この ID は、後で共有シークレットまたは復号された POP CMC の登録手順を実行する際に使用されます。

    パラメーターの詳細は、PKCS10Client(1) の man ページを参照してください。

  3. 必要に応じて、CSR ファイルが正しいことを確認します。

    $ cat example.csr
    
    		-----BEGIN CERTIFICATE REQUEST-----
    		MIICzzCCAbcCAQAwgYkx
    		...
    		-----END CERTIFICATE REQUEST-----

次の手順については、「共有シークレットを使用して証明書登録を認証する」 を参照してください。

5.2.3. CRMFPopClient を使用して CSR を作成する

Certificate Request Message Format (CRMF) は、CMC で受け入れられている CSR 形式であり、主要なアーカイブ情報を要求に安全に埋め込むことができます。

このセクションでは、CRMFPopClient ユーティリティーを使用して CSR を作成する方法の例を示します。

CRMFPopClient の使用に関する詳細を確認する場合は、CRMFPopClient -help コマンドを実行してください。

5.2.3.1. CRMFPopClient でキーアーカイブを使用する CSR を作成する

以下の手順では、CRMFPopClient ユーティリティーを使用して RSA キーペアと、キーアーカイブオプションを使用する CSR を作成する方法を説明します。

  1. 証明書が要求されるユーザーまたはエンティティーの証明書データベースディレクトリーに移動します。以下に例を示します。

    $ cd /user_or_entity_database_directory/
  2. CA から KRA トランスポート証明書を取得します。

    $ pki -p 8443 ca-cert-find --name "DRM Transport Certificate"
    
    		---------------
    		1 entries found
    		---------------
    			Serial Number: 0x7
    			Subject DN: CN=DRM Transport Certificate,O=EXAMPLE
    			Status: VALID
    			Type: X.509 version 3
    			Key Algorithm: PKCS #1 RSA with 2048-bit key
    			Not Valid Before: Thu Oct 22 18:26:11 CEST 2015
    			Not Valid After: Wed Oct 11 18:26:11 CEST 2017
    			Issued On: Thu Oct 22 18:26:11 CEST 2015
    			Issued By: caadmin
    		----------------------------
    		Number of entries returned 1
  3. KRA トランスポート証明書をエクスポートします。

    $ pki -p 8443 ca-cert-show 0x7 --output kra.transport
  4. CSR を作成し、example.csr ファイルに保存します。

    $ CRMFPopClient -d . -p password -n "cn=subject_name" -q POP_SUCCESS -b kra.transport -w "AES KeyWrap/Wrapped" -v -o example.csr -oaep
    
    Initializing security database: .
    archival option enabled
    Loading transport certificate
    Parsing subject DN
    RDN: CN=subject_name
    Generating key pair: temporary: false
    CryptoUtil: generateRSAKeyPair: calling kg.setKeyPairUsages
    Keypair private key id: 27a7e30b48f268ddcc8681633d4014579416d6ca
    Using key wrap algorithm: AES KeyWrap/Wrapped
    Creating certificate request
    CRMFPopClient: use_shared_secret true. Generating SubjectKeyIdentifier extension.
    Creating signer
    Creating POP
    Creating CRMF request
    Storing CRMF request into example.csr
    Storing CRMF request key id into example.csr.keyId
    注記

    Elliptic Curve (EC) キーペアと CSR を作成するには、-a ec -t false オプションをコマンドに渡します。パラメーターの詳細は、CRMFPopClient -help コマンドを実行してください。

  5. 必要に応じて、CSR ファイルが正しいことを確認します。

    $ cat example.csr
    
    		-----BEGIN CERTIFICATE REQUEST-----
    		MIICzzCCAbcCAQAwgYkx
    		...
    		-----END CERTIFICATE REQUEST-----

次の手順については、「CMC 登録プロセス」 を参照してください。

5.2.3.2. CRMFPopClient で SharedSecret ベースの CMC の CSR を作成する

以下の手順では、CRMFPopClient ユーティリティーを使用して、SharedSecret ベースの CMC 用の RSA キーペアと CSR を作成する方法を説明します。これは、デフォルトでは caFullCMCSharedTokenCert プロファイルと caECFullCMCSharedTokenCert プロファイルで処理される CMC 共有シークレット認証方法にのみ使用します。

  1. 証明書が要求されるユーザーまたはエンティティーの証明書データベースディレクトリーに移動します。以下に例を示します。

    $ cd /user_or_entity_database_directory/
  2. KRA トランスポート証明書を取得します。

    $ pki -p 8443 ca-cert-find --name "DRM Transport Certificate"
    
    		---------------
    		1 entries found
    		---------------
    			Serial Number: 0x7
    			Subject DN: CN=DRM Transport Certificate,O=EXAMPLE
    			Status: VALID
    			Type: X.509 version 3
    			Key Algorithm: PKCS #1 RSA with 2048-bit key
    			Not Valid Before: Thu Oct 22 18:26:11 CEST 2015
    			Not Valid After: Wed Oct 11 18:26:11 CEST 2017
    			Issued On: Thu Oct 22 18:26:11 CEST 2015
    			Issued By: caadmin
    		----------------------------
    		Number of entries returned 1
  3. KRA トランスポート証明書をエクスポートします。

    $ pki -p 8443 ca-cert-export 0xc --output-file kra.transport
  4. CSR を作成し、example.csr ファイルに保存します。

    $ CRMFPopClient -d . -p password -n "cn=subject_name" -q POP_SUCCESS -b kra.transport -w "AES KeyWrap/Wrapped" -y -v -o example.csr -oaep
    
    Initializing security database: .
    archival option enabled
    Loading transport certificate
    Parsing subject DN
    RDN: CN=subject_name
    Generating key pair: temporary: false
    CryptoUtil: generateRSAKeyPair: calling kg.setKeyPairUsages
    Keypair private key id: 6e786393637781a4ae281f5304290fcabda5a6b4
    Using key wrap algorithm: AES KeyWrap/Wrapped
    Creating certificate request
    CRMFPopClient: use_shared_secret true. Generating SubjectKeyIdentifier extension.
    Creating signer
    Creating POP
    Creating CRMF request
    Storing CRMF request into example.csr
    Storing CRMF request key id into example.csr.keyId
    注記

    EC キーペアと CSR を作成するには、コマンドに -a ec -t false オプションを渡します。パラメーターの詳細は、CRMFPopClient --help コマンドの出力を参照してください。

    出力で生成されたキーペアの秘密鍵 ID は、<CSR output file name>.keyId の名前形式を持つファイルに保存されます。この ID は、後で共有シークレットまたは DecryptedPOP CMC の登録手順を実行する際に使用されます。

  5. 必要に応じて、CSR ファイルが正しいことを確認します。

    $ cat example.csr
    		-----BEGIN CERTIFICATE REQUEST-----
    		MIICzzCCAbcCAQAwgYkx
    		...
    		-----END CERTIFICATE REQUEST-----

次の手順については、「共有シークレットを使用して証明書登録を認証する」 を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.