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 タスク
パブリックキーおよびプライベートキーでキーストアを生成します。
以下のコマンドを実行して、現在のディレクトリーでserver.keystore
という名前のキーストアを生成し、エイリアスtomcat
で新しいキーを作成します。値server.keystore
およびtomcat
は、任意ですが、エイリアスtomcat
は JBoss Web サーバーにより使用されるデフォルト値です。keytool -genkey -alias tomcat -keyalg RSA -keystore server.keystore
キーのデータベースであるキーストアにキーのエントリを入力するために、次の情報を入力するよう求められます。値は任意でありませんが、以下で説明されています。オプション 説明 パスワード このパスワードは、キーストアに対する認証を行うために使用されます (結果的に、キーを読み取ることができます)。これはセキュアな方法であることに注意してください。 名と姓 証明書名が使用される URL に一致するよう、これは、Web サーバーのドメイン名に一致する必要があります。 キーパスワード これは、設定できるオプションのセカンダリパスワードです。設定すると、キーを使用するたびに入力する必要があります。通常、これは推奨されません。 ファイルserver.keystore
には、エイリアスがtomcat
の単一キーが含まれます。キーを検証します。
以下のコマンドを使用して、キーが正常に動作することを検証します。keytool -list -keystore server.keystore
キーストアのパスワードを入力するよう求められます。キーストアの内容 (この場合は、tomcat
という名前の単一キー) が表示されます。tomcat
キーの種類がkeyEntry
であることに注意してください。これは、キーストアにこのキーのパブリックおよびプライベートエントリが含まれることを示します。暗号化キーを使用して証明書を生成します。
以下のコマンドを実行し、作成した暗号化キーを使用して署名された証明書を生成します。keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore server.keystore
キーストアに対する認証を行うために、パスワードを入力するよう求められます。keytool
コマンドにより、現在の作業ディレクトリーにcertreq.csr
という名前の新しい署名済み証明書が作成されます。新しく生成された証明書をテストします。
以下のコマンドを使用して証明書の内容をテストします。openssl req -in certreq.csr -noout -text
証明書の詳細が表示されます。オプション: 証明書を認証局 (CA) に送信します。
認証局 (CA) は、証明書を認証できます。この結果、証明書は、サードパーティークライアントが信用できると見なされます。CA により、署名済み証明書が提供されます。また、オプションで 1 つまたは複数の中間証明書が提供されます。オプションで: 証明書を自己署名します。
テストまたは内部使用のためにのみ証明書が必要な場合は、証明書を自己署名できます。以下のコマンドを使用して署名の有効期限が 365 日後に切れるようにします。openssl x509 -req -days 365 -in server.csr -signkey server.keystore -out server.crt
server.crt
という名前の自己署名証明書が、現在の作業ディレクトリーに作成されます。署名済み証明書を中間証明書とともにインポートします。
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
証明書が正常にインポートされたことをテストします。
以下のコマンドを実行し、要求された場合にキーストアパスワードを入力します。キーストアの内容が表示され、証明書がリストの一部になります。keytool -list -keystore server.keystore
結果
署名済み証明書はキーストアに含まれ、HTTPS Web サーバー通信を含む SSL 接続を暗号化するために使用できます。