概要
いわずと知れた、いわゆるオレオレ証明書の発行手順を
数年周期でなにかしらで必要になるけれども、どうやって作るかを毎回忘れてしまうので備忘録として残しておきます
また証明書の使い方としてSpringBoot設定を例として記載しておきます
実行環境
Windows11
自己証明書発行
方針としてはKeyToolから証明書を発行し、SpringBootで使用する
KeyToolの準備
Java SDKに同胞されているkeyToolを使用したいため
インストールされてなければ下記とかからjdkをダウンロードしインストールする
https://www.oracle.com/java/technologies/downloads/#jdk21-windows
SSL証明書の発行
上記でインストールしたJavaJDKフォルダのkeytoolのあるディレクトリに移動
※コマンドプロンプトは管理者で開く
>cd C:\Program Files\Java\jdk-21\bin
keytoolを実行する
※引数の有効期間、証明書のファイル名は任意
>keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
いろいろ聞かれるが、パスワード以外はすべてEnterで、最後のみ「y」で入力
RSA -keysize 2048 -keystore keystore.p12 -validity 3650
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
識別名を入力します。サブコンポーネントを空のままにする場合はドット(.)を1つ入力し、中カッコ内のデフォルト値を使用する場合は[ENTER]を押します。
姓名は何ですか。
[Unknown]:
組織単位名は何ですか。
[Unknown]:
組織名は何ですか。
[Unknown]:
都市名または地域名は何ですか。
[Unknown]:
都道府県名または州名は何ですか。
[Unknown]:
この単位に該当する2文字の国コードは何ですか。
[Unknown]:
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknownでよろしいですか。
[いいえ]: y
下記のように生成しましたメッセージが表示され
実行フォルダに証明書ファイル(keystore.p12)が作成される
3,650日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA384withRSA)を生成しています
SpringBootに設定する
証明書ファイル(keystore.p12)を配置し
「application.properties」ファイルに書きのように証明書の読みこみ設定を追記する
# 接続ポート番号(任意のポート名)
server.port=9443
# SSL証明書を保持するキーストアへのパス(※作成したkeystoreのパス+ファイル名)
server.ssl.key-store=keystore.p12
# キーストアにアクセスするためのパスワード(証明書発行時に設定したパスワード)
server.ssl.key-store-password=xxxxx
# キーストアのタイプ
server.ssl.key-store-type=PKCS12
# キーストア内のキーを識別するエイリアス
server.ssl.key-alias=tomcat
※上記の場合はプロジェクトのルートフォルダに配置、JAR配布の場合はJARと同一フォルダに配置
下記のようなURLでアクセスする
https://localhost:9443/xxxx
参考
https://jp.globalsign.com/support/ssl/confinfo/rootcert-import-java.html
https://blog.fire-sign.info/1695/