4.7. SSL 暗号化キーおよび証明書の生成


SSL で暗号化された HTTP 接続(HTTPS)や、その他のタイプの SSL で暗号化された通信を使用するには、署名済み暗号化証明書が必要です。認証局(CA)から証明書を購入するか、自己署名証明書を使用できます。自己署名証明書は、多くのサードパーティーが信頼しているとは見なされませんが、内部テストの目的で適しています。
この手順を実行すると、Red Hat Enterprise Linux で利用可能なユーティリティーを使用して自己署名証明書を作成できます。

前提条件

  • Java Development Kit 実装によって提供される keytool ユーティリティーが必要です。Red Hat Enterprise Linux の OpenJDK は、このコマンドを /usr/bin/keytool にインストールします。
  • keytool コマンドの構文とパラメーターを理解します。この手順では、SSL 証明書または keytool コマンドの詳細な説明は本書の対象外であるため、非常に一般的な手順を使用します。

手順4.5 SSL 暗号化キーおよび証明書の生成

  1. パブリックキーおよびプライベートキーとともにキーストアを生成します。<remark>Bugzilla のバグの内容を反映済み</remark>

    以下のコマンドを実行して、現在のディレクトリーにエイリアス jboss が含まれる server.keystore という名前のキーストアを生成します。
    keytool -genkeypair -alias jboss -keyalg RSA -keystore server.keystore -storepass mykeystorepass --dname "CN=jsmith,OU=Engineering,O=mycompany.com,L=Raleigh,S=NC,C=US"
    この keytool コマンドで使用されるパラメーターの説明は次のとおりです。
    パラメーター 説明
    -genkeypair 公開鍵と秘密鍵が含まれるキーペアを生成する keytool コマンド。
    -alias キーストアのエイリアス。この値は任意ですが、エイリアス jboss は JBoss Web サーバーによって使用されるデフォルトです。
    -keyalg キーペア生成アルゴリズム。この場合、これは RSA です。
    -keystore キーストアファイルの名前および場所。デフォルトの場所は、現在のディレクトリーです。選択する名前は任意です。この場合、ファイルの名前は server.keystore になります。
    -storepass このパスワードは、鍵を読み取りできるようにキーストアに対して認証するために使用されます。パスワードは 6 文字以上である必要があります。パスワードは、キーストアへのアクセス時に入力する必要があります。この例では、mykeystorepass を使用しています。このパラメーターを省略すると、コマンドの実行時に入力が求められます。
    -keypass
    実際の鍵のパスワードです。
    注記
    実装の制限により、ストアと同じパスワードを使用する必要があります。
    --dname キーの識別名を記述する引用符で囲まれた文字列(例: "CN=jsmith,OU=Engineering,O=mycompany.com,L=Raleigh,C=US")。この文字列は、以下のコンポーネントを連結したものです。
    • CN: 共通名またはホスト名。ホスト名が "jsmith.mycompany.com" の場合、CN は jsmith になります。
    • OU - 組織単位(例: Engineering)
    • O - 組織名(例: mycompany.com)。
    • l - ローカリティー(例: Raleigh または「London」)
    • s - "NC" など、状態または 提案 について参照してください。このパラメーターは任意です。
    • c - 2 文字の国コード。たとえば、「US」または「UK」です。
    上記のコマンドを実行すると、次の情報が要求されます。
    • コマンドラインで -storepass パラメーターを使用しなかった場合は、キーストアパスワードを入力するように求められます。次のプロンプトで新しいパスワードを再入力します。
    • コマンドラインで -keypass パラメーターを使用しない場合は、キーパスワードを入力するように求められます。Enter を押して、キーストアパスワードと同じ値に設定します。
    コマンドが完了すると、ファイル server.keystore にエイリアス jboss のある単一のキーが含まれるようになりました。
  2. 鍵を確認します。

    以下のコマンドを使用して、キーが正常に動作することを検証します。
    keytool -list -keystore server.keystore
    キーストアパスワードの入力が求められます。キーストアの内容が表示されます(この場合は、jbossと呼ばれる単一のキー)。jboss キーのタイプ( PrivateKeyEntry )に注目してください。これは、キーストアにこのキーのパブリックおよびプライベートエントリーの両方が含まれることを示します。
  3. 証明書の署名要求を生成します。

    次のコマンドを実行し、手順 1 で作成したキーストアより公開鍵を使用して証明書署名要求を生成します。
    keytool -certreq -keyalg RSA -alias jboss -keystore server.keystore -file certreq.csr
    キーストアに対して認証を行うためにパスワードが要求されます。次に、keytool コマンドは、現在の作業ディレクトリーに certreq.csr という新しい証明書署名要求を作成します。
  4. 新しく生成された証明書署名要求をテストします。

    以下のコマンドを使用して証明書の内容をテストします。
    openssl req -in certreq.csr -noout -text
    証明書の詳細が表示されます。
  5. オプション: 証明書署名要求を認証局 (CA) に送信します。

    認証局(CA)は証明書を認証できるため、サードパーティークライアントが信用できると見なされます。CA は署名済み証明書を提供し、必要に応じて 1 つ以上の中間証明書を提供します。
  6. オプション: キーストアからの自己署名証明書のエクスポート

    テストまたは内部目的でのみ必要な場合は、自己署名証明書を使用できます。以下のように、手順 1 で作成したキーストアからエクスポートできます。
    keytool -export -alias jboss -keystore server.keystore -file server.crt
    キーストアに対して認証を行うためにパスワードが要求されます。現在の作業ディレクトリーに、server.crt という名前の自己署名証明書が作成されます。
  7. 署名済み証明書を中間証明書とともにインポートします。

    CA によって指示された順序で各証明書をインポートします。インポートする証明書ごとに、intermediate.ca または server.crt を実際のファイル名に置き換えます。証明書が個別のファイルとして提供されない場合は、各証明書に個別のファイルを作成し、その内容をファイルに貼り付けます。
    注記
    署名済み証明書および証明書キーは、有用なアセットです。サーバー間での転送方法に注意してください。
    keytool -import -keystore server.keystore -alias intermediateCA -file intermediate.ca
    keytool -importcert -alias jboss -keystore server.keystore -file server.crt
  8. 証明書が正常にインポートされたことをテストします。

    以下のコマンドを実行し、プロンプトが表示されたらキーストアのパスワードを入力します。キーストアの内容が表示され、証明書はリストに含まれます。
    keytool -list -keystore server.keystore

結果

署名済み証明書はキーストアに含まれ、HTTPS Web サーバー通信を含む SSL 接続を暗号化するために使用できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.