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

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

前提条件

  • Java 開発キット実装で提供される keytool ユーティリティーが必要です。このコマンドは、Red Hat Enterprise Linux 上の OpenJDK により /usr/bin/keytool にインストールされます。
  • keytool コマンドの構文およびパラメーターについて理解してください。この手順では、非常に一般的な手順を実行します。本書では、SSL 証明書または keytool コマンドの固有な説明は範囲外です。

手順13.2 タスク

  1. パブリックキーおよびプライベートキーでキーストアを生成します。

    以下のコマンドを実行して、現在のディレクトリーで server.keystore という名前のキーストアを生成し、エイリアス tomcat で新しいキーを作成します。値 server.keystore および tomcat は、任意ですが、エイリアス tomcat は JBoss Web サーバーにより使用されるデフォルト値です。
    keytool -genkey -alias tomcat -keyalg RSA -keystore server.keystore
    キーのデータベースであるキーストアにキーのエントリを入力するために、次の情報を入力するよう求められます。値は任意でありませんが、以下で説明されています。
    オプション 説明
    パスワード このパスワードは、キーストアに対する認証を行うために使用されます (結果的に、キーを読み取ることができます)。これはセキュアな方法であることに注意してください。
    名と姓 証明書名が使用される URL に一致するよう、これは、Web サーバーのドメイン名に一致する必要があります。
    キーパスワード これは、設定できるオプションのセカンダリパスワードです。設定すると、キーを使用するたびに入力する必要があります。通常、これは推奨されません。
    ファイル server.keystore には、エイリアスが tomcat の単一キーが含まれます。
  2. キーを検証します。

    以下のコマンドを使用して、キーが正常に動作することを検証します。
    keytool -list -keystore server.keystore
    キーストアのパスワードを入力するよう求められます。キーストアの内容 (この場合は、tomcat という名前の単一キー) が表示されます。tomcat キーの種類が keyEntry であることに注意してください。これは、キーストアにこのキーのパブリックおよびプライベートエントリが含まれることを示します。
  3. 暗号化キーを使用して証明書を生成します。

    以下のコマンドを実行し、作成した暗号化キーを使用して署名された証明書を生成します。
    keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore server.keystore
    キーストアに対する認証を行うために、パスワードを入力するよう求められます。keytool コマンドにより、現在の作業ディレクトリーに certreq.csr という名前の新しい署名済み証明書が作成されます。
  4. 新しく生成された証明書をテストします。

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

    認証局 (CA) は、証明書を認証できます。この結果、証明書は、サードパーティークライアントが信用できると見なされます。CA により、署名済み証明書が提供されます。また、オプションで 1 つまたは複数の中間証明書が提供されます。
  6. オプションで: 証明書を自己署名します。

    テストまたは内部使用のためにのみ証明書が必要な場合は、証明書を自己署名できます。以下のコマンドを使用して署名の有効期限が 365 日後に切れるようにします。
    openssl x509 -req -days 365 -in server.csr -signkey server.keystore -out server.crt
    server.crt という名前の自己署名証明書が、現在の作業ディレクトリーに作成されます。
  7. 署名済み証明書を中間証明書とともにインポートします。

    CA で指示された順序で各証明書をインポートします。各証明書をインポートするには、intermediate.ca または server.crt を実際のファイル名に置き換えます。証明書が別のファイルとして提供されない場合は、各証明書に対して個別のファイルを作成し、その内容をファイルに貼り付けます。

    注記

    署名済み証明書および証明書キーは機密情報です。サーバー間での転送方法に注意してください。
    keytool -import -keystore server.keystore -alias intermediateCA -file intermediate.ca
    keytool -import -alias tomcat -keystore server.keystore -file server.crt
  8. 証明書が正常にインポートされたことをテストします。

    以下のコマンドを実行し、要求された場合にキーストアパスワードを入力します。キーストアの内容が表示され、証明書がリストの一部になります。
    keytool -list -keystore server.keystore
結果

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