はじめに
この記事では、前回作成した初期プロジェクトに証明書を発行し SSL 化します。
初期プロジェクトの作成については、以下記事も参考にしてください。
Spring Boot – プロジェクトの新規作成
SpringBootのプロジェクトの新規作成について記載しています。
SSL 化対応
本来であれば、有償の証明書を使用するべきですが、開発環境ですので、いわゆるオレオレ証明書を使用します。
証明書作成
keytool は Linux のコマンドですが、Windows 環境でも v8 以降の JDK がインストールされていれば、使用可能です。以下のコマンドは Windows 環境で実行しています。
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 キーストアのパスワードを入力してください:kazz-y.com 新規パスワードを再入力してください:kazz-y.com 姓名は何ですか。 [Unknown]: 組織単位名は何ですか。 [Unknown]: 組織名は何ですか。 [Unknown]: 都市名または地域名は何ですか。 [Unknown]: 都道府県名または州名は何ですか。 [Unknown]: この単位に該当する2文字の国コードは何ですか。 [Unknown]: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknownでよろしいですか。 [いいえ]: はい 3,650日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています ディレクトリ名: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
実行すると、keystore.p12 というファイルが出来上がります。このファイルを プロジェクトの直下に移動します。
application-local.yml
application.yml に ssl の定義を記述します。
server: port: 8443 ssl: key-store: keystore.p12 key-store-password: kazz-y.com key-store-type: PKCS12 key-alias: tomcat spring: ## database datasource: url: jdbc:h2:mem:kazz_y; username: sa password: # datasource: # url: jdbc:postgresql://localhost:15432/kazz_y # username: kazz_y # password: kazz_y # datasource: # url: jdbc:mysql://localhost:13306/kazz_y # username: kazz_y # password: kazz_y # datasource: # url: jdbc:mariadb://localhost:13307/kazz_y # username: kazz_y # password: kazz_y ## jpa jpa: show-sql: true properties: hibernate: '[format_sql]': true '[highlight_sql]': true '[jdbc.time_zone]': Asia/Tokyo open-in-view: true hibernate.ddl-auto: create-drop h2.console.enabled: true
動作確認
以下URLにアクセスします。
https://localhost:8443
エラーページが表示されますが、SSL 化できていることが確認できます。
最後に
オレオレ証明書を使用し、SSL 化を行いました。次回は Spring Security を設定し、ユーザのログイン管理ができるようにしてみます。
コメント