keytoolコマンド覚え書き
OpenJDKに付属するkeytoolコマンドの覚え書き。
keytoolは%JAVA_HOME%\bin\
にあります。
自己署名証明書を作成する
各コマンドのtomcat
は<エイリアス名>
です。
.keystoreファイル
がユーザフォルダ(`C:\Users\<ユーザ名>
)に作成される
keytool -genkey -alias tomcat -keyalg RSA -validity 36500
- keystoreファイルを指定
- SANあり
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -validity 36500 -ext SAN=dns:sample.tomcat.local,ip:192.168.33.1 -keystore sample.keystore
作成したkeystoreファイルの中身を確認
作成した.keystoreファイル
に任意のエイリアス名があるか確認したい場合。
以下のコマンドを実行し、出力にエイリアス名があるか確認します。
keytool -list -v -keystore <.keystoreファイル>
Javaに証明書を追加
JavaのモジュールがSSL通信を行う際、自己証明書を使ったSSL通信ではエラーになります。
この通信を許可するためには、JDKのキーストアに自己証明書をインポートする必要があります。
追加(
-import
)と削除(-delete
)は管理者権限のコマンドプロンプトでしか実行できません。キーストアに証明書をインポートする
このインポート処理が一番使うかな。
keytool -import -trustcacerts -file <CRTファイル> -keystore "%JAVA_HOME%\lib\security\cacerts" -alias <エイリアス名>
キーストア全体の内容を出力する
keytool -list -v -storepass changeit -keystore "%JAVA_HOME%\lib\security\cacerts"
ファイルに出力
keytool -list -v -storepass changeit -keystore "%JAVA_HOME%\lib\security\cacerts" > keystore.txt
エイリアス名で特定されるキーストアエントリの内容を表示
keytool -list -v -storepass changeit -keystore "%JAVA_HOME%\lib\security\cacerts" -alias <エイリアス名>
エイリアス名によって特定されるエントリをキーストアから削除する
keytool -delete -alias <エイリアス名> -keystore "%JAVA_HOME%\lib\security\cacerts"