keytool
コマンドを使用してlocalhost
用の証明書を生成する場合、Javaのキーストア(.keystore
または.jks
ファイル)内に直接自己署名証明書を生成し、管理することができます。これは特にJavaアプリケーションやJavaベースのサーバー(例えばTomcatやJetty)で役立ちます。以下に、一般的な手順を示します。
-
キーストアと自己署名証明書の生成:
keytool -genkeypair -alias localhost -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore localhost.p12 -validity 365
このコマンドは以下を行います:
-
-genkeypair
: 新しいキーペア(公開鍵と秘密鍵)を生成します。 -
-alias localhost
: キーストア内のエントリに使用される別名を指定します。 -
-keyalg RSA
: 鍵のアルゴリズムとしてRSAを指定します。 -
-keysize 2048
: 鍵のサイズとして2048ビットを指定します。 -
-storetype PKCS12
: キーストアのタイプとしてPKCS12を指定します(Java 9以降で推奨される形式)。 -
-keystore localhost.p12
: キーストアファイルの名前と場所を指定します。 -
-validity 365
: 証明書の有効期間を365日に設定します。
コマンドを実行すると、キーストアのパスワード、所有者の情報(名前、組織、都市など)、およびキーペアのパスワードを入力するよう求められます。
Common Name
(CN)フィールドにはlocalhost
を使用してください。 -
-
キーストアの内容を確認:
keytool -list -keystore localhost.p12
このコマンドを使用してキーストアの内容を確認し、先ほど作成したエントリが含まれていることを確認します。
これらの手順により、localhost
用の自己署名証明書が含まれるキーストアが生成されます。キーストア(localhost.p12
)は、JavaベースのアプリケーションやサーバーでSSL/TLS接続を設定する際に使用されます。
注意: この自己署名証明書は開発目的には適していますが、公開サーバーで使用する場合は訪問者に警告が表示される可能性があります。本番環境では、信頼できる認証局(CA)から証明書を取得することをお勧めします。
WireMockをスタンドアローンモードで実行し、HTTPS通信のためにキーストアを指定するには、コマンドライン引数を使用して指定します。キーストアにはJava KeyStore(JKS)形式やPKCS12形式のファイルを使用でき、SSL設定のために必要な秘密鍵と公開鍵の証明書が含まれています。以下は、キーストアを指定してWireMockを起動する一般的なコマンド例です。
java -jar wiremock-standalone-{version}.jar --https-port 8443 --keystore-path path/to/your/keystore.jks --keystore-password yourkeystorepassword
このコマンドの各オプションは以下の通りです:
-
--https-port 8443
:WireMockにHTTPSリクエストをリッスンさせるポートを指定します。8443
は一例で、使用環境に合わせて変更できます。 -
--keystore-path path/to/your/keystore.jks
:使用するキーストアファイルへのパスを指定します。ファイルはJKS形式かPKCS12形式である必要があります。 -
--keystore-password yourkeystorepassword
:キーストアに設定されているパスワードを指定します。
実際にコマンドを実行する際は、{version}
を使用しているWireMockのバージョンに、path/to/your/keystore.jks
をキーストアファイルの実際のパスに、そしてyourkeystorepassword
をキーストアのパスワードに置き換えてください。
また、必要に応じて他のオプションも追加できます。たとえば、クライアント証明書の検証を必要とする場合は、--truststore-path
や--truststore-password
を指定することもできます。
WireMockのドキュメントやコマンドラインのヘルプ(java -jar wiremock-standalone-{version}.jar --help
)で、利用可能なすべてのオプションの詳細を確認してください。