翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 2: プライベートキーと SSL/TLS 証明書を生成またはインポートする
HTTPS を有効にするには、Tomcat ウェブサーバーアプリケーションにプライベートキーと、それに対応する SSL/TLS 証明書が必要です。でウェブサーバーの SSL/TLS オフロードを使用するには AWS CloudHSM、プライベートキーを AWS CloudHSM クラスターの HSM に保存する必要があります。
注記
プライベートキーとそれに対応する証明書を持っていない場合、HSM でプライベートキーを生成できます。このプライベートキーを使用して証明書署名リクエスト (CSR) を作成し、それを使用してSSL/TLS証明書を作成します。
HSM のプライベートキーへの参照と関連する証明書を含むローカル AWS CloudHSM KeyStore ファイルを作成します。ウェブサーバーは AWS CloudHSM KeyStore ファイルを使用して、SSL/TLS オフロード中に HSM のプライベートキーを識別します。
プライベートキーの生成
このセクションでは、JDK KeyTool から を使用してキーペアを生成する方法を示します。HSM 内でキーペアを生成したら、ファイルとしてエクスポートし KeyStore 、対応する証明書を生成できます。
ユースケースに応じて、RSA または EC キーペアを生成できます。以下の手順では、RSA キーペアを生成する方法を示します。
で genkeypair
コマンド KeyTool を使用して RSA キーペアを生成する
下の
<VARIABLES>
を特定のデータに置き換えたら、次のコマンドを使用してjsse_keystore.keystore
という名前のキーストアファイルを生成します。このファイルには HSM 上のプライベートキーへの参照が含まれます。$
keytool -genkeypair -alias
<UNIQUE ALIAS FOR KEYS>
-keyalg<KEY ALGORITHM>
-keysize<KEY SIZE>
-sigalg<SIGN ALGORITHM>
\ -keystore<PATH>
/<JSSE KEYSTORE NAME>
.keystore -storetype CLOUDHSM \ -dname CERT_DOMAIN_NAME \ -J-classpath '-J'$JAVA_LIB'/*:/opt/cloudhsm/java/*:./*' \ -provider "com.amazonaws.cloudhsm.jce.provider.CloudHsmProvider" \ -providerpath "$CLOUDHSM_JCE_LOCATION" \ -keypass<KEY PASSWORD>
-storepass<KEYSTORE PASSWORD>
<PATH>
: キーストアファイルを生成するパス。<UNIQUE ALIAS FOR KEYS>
: これは HSM 上でキーを一意に識別するために使用されます。このエイリアスは、キーの LABEL 属性として設定されます。<KEY PASSWORD>
: キーへの参照はローカルキーストアファイルに保存され、このパスワードによってローカル参照が保護されます。<KEYSTORE PASSWORD>
: これはローカルキーストアファイルのパスワードです。<JSSE KEYSTORE NAME>
: キーストアファイルの名前。<CERT DOMAIN NAME>
: X.500 識別名。<KEY ALGORITHM>
: キーペアを生成するためのキーアルゴリズム (RSA と EC など)。<KEY SIZE>
: キーペアを生成するためのキーサイズ (たとえば、2048、3072、4096)。<SIGN ALGORITHM>
: キーペアを生成するためのキーサイズ(たとえば、SHA1withRSA、SHA224withRSA、SHA256withRSA、SHA384withRSA、SHA512withRSA)。
-
コマンドが成功したことを確認するには、次のコマンドを入力し、RSA キーペアが正常に生成されたことを確認します。
$
ls
<PATH>
/<JSSE KEYSTORE NAME>
.keystore
自己署名証明書を生成します
キーストアファイルとともにプライベートキーを生成したら、このファイルを使用して証明書署名リクエスト (CSR) と証明書を生成できます。
本稼働環境では、通常、認証機関 (CA) を使用して CSR から証明書を作成します。CA は、テスト環境では必要ありません。CA を使用する場合は、CA に CSR ファイルを送信し、HTTPS 用のウェブサーバーで提供される署名付き SSL/TLS 証明書を使用してください。
CA を使用する代わりに、 を使用して自己署名証明書 KeyTool を作成できます。自己署名証明書はブラウザによって信頼されないため、本稼働環境では使用しないでください。これらは、テスト環境で使用することができます。
警告
自己署名証明書はテスト環境でのみ使用する必要があります。本稼働環境では、証明機関を使用して証明書を作成するなど、より安全な方法を使用してください。
トピック
証明書を生成する
-
前のステップで生成したキーストアファイルのコピーを入手します。
-
次のコマンドを実行して、 を使用して証明書署名リクエスト (CSR) KeyTool を作成します。
$
keytool -certreq -keyalg RSA -alias unique_alias_for_key -file certreq.csr \ -keystore
<JSSE KEYSTORE NAME>
.keystore -storetype CLOUDHSM \ -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keypass<KEY PASSWORD>
-storepass<KEYSTORE PASSWORD>
注記
証明書署名リクエストの出力ファイルは
certreq.csr
です。
証明書に署名する
-
下の
<VARIABLES>
を特定のデータに置き換えた後、次のコマンドを実行して、HSM 上のプライベートキーを使用して CSR に署名します。これにより、自己署名証明書が作成されます。$
keytool -gencert -infile certreq.csr -outfile certificate.crt \ -alias
<UNIQUE ALIAS FOR KEYS>
-keypass<KEY_PASSWORD>
-storepass<KEYSTORE_PASSWORD>
-sigalg SIG_ALG \ -storetype CLOUDHSM -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keystore jsse_keystore.keystore注記
certificate.crt
は、エイリアスのプライベートキーを使用する署名付き証明書です。
Keystore に証明書をインポートする
下の
<VARIABLES>
を特定のデータに置き換えた後、次のコマンドを実行して、署名付き証明書を信頼できる証明書としてインポートします。このステップでは、エイリアスで識別されるキーストアエントリに証明書を保存します。$
keytool -import -alias
<UNIQUE ALIAS FOR KEYS>
-keystore jsse_keystore.keystore \ -file certificate.crt -storetype CLOUDHSM \ -v -J-classpath '-J$JAVA_LIB/*:/opt/cloudhsm/java/*:./*' \ -keypass<KEY PASSWORD>
-storepass<KEYSTORE_PASSWORD>
証明書を PEM に変換する
次のコマンドを実行して、署名付き証明書ファイル (.crt) を PEM に変換します。PEM ファイルは http クライアントからのリクエストの送信に使用されます。
$
openssl x509 -inform der -in certificate.crt -out certificate.pem
これらの手順を完了したら、「ステップ 3: ウェブサーバーの設定」に進みます。