Spring Boot – SSL化

Spring Boot

はじめに

この記事では、前回作成した初期プロジェクトに証明書を発行し 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 を設定し、ユーザのログイン管理ができるようにしてみます。

コメント

タイトルとURLをコピーしました