コラム

Certbotで取得したSSL認証書でSpring BootでSSL対応

環境

OS:Amazon Linux2
tomcat10

Certbotとは

certbotはLet’s Encryptと呼ばれる認証局から無料でSSL認証書を発行が出来るツールで、ApacheなどのWebサーバの設定まで行ってくれます。
今回は、WebサーバはTomcatを使用するので自動設定部分についてはやっていません。

SSL証明書発行の手順

・Certbotインストール

$sudo amazon-linux-extras install -y epel
$sudo yum update
sudo yum install -y certbot

SSL認証書発行

$certbot certonly --manual -d <証明書を取得したいドメイン> -m <メールアドレス>

Webサーバに②ディレクトリ、ファイルを作成し、ファイルの中に①を記述しからEnterを押下します。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create a file containing just this data:

nfgSpbqqZ9K3jlpEj6alnO9jXnKzaPTUuSjJXGA0ixo.SIQcGAFImdW-7ZQBQhkqh6IhcHf62TQxXXXXXXXXX  ①

And make it available on your web server at this URL:

http://test.jp/.well-known/acme-challenge/nfgSpbqqZ9K3jlpEj6alnO9jXXXXXXXXXXXXXXXXXXXXX ②

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

Congratulations!が表示されたらSSL証明書の取得成功です。

取得した証明書は通常“/etc/letsencrypt/live/<ドメイン名>/”配下にあります。
次の4つのファイルが作成されています。

  • cert.pem:サーバ証明書 (公開鍵) 
  • chain.pem:中間証明書
  • fullchain.pem:サーバ証明書と中間証明書が結合されたファイル
  • privkey.pem:秘密鍵

発行したSSL証明書をSpring Bootで使用するように手順

・SSL認証書(pemファイル)をpkcs#12ファイルに変換

$openssl pkcs12 -export -in fullchain.pem \
-inkey privkey.pem \
-out keystore.p12 -name \
Tomcat -CAfile \
chain.pem -caname root \

コマンド実行するとパスワードを設定を要求されるので設定します。
このパスワードはSpring Bootの設定の際に使用するので覚えておいて下さい。

Enter Export Password:

正常に終了すると「keystore.p12」というファイルが作成されます。

・application.properties設定

server.port = 443
server.ssl.enabled=true
server.ssl.keyAlias=tomcat
server.ssl.key-store=classpath:keystore.p12
server.ssl.protocol=TLSv1.2
server.ssl.key-store-password=password
server.keyStoreType=PKCS12

keystore.p12はresourceファイル直下に置く場合、この記述になります。
server.ssl.key-store-passwordは上記で設定したパスワードを指定します。

証明書の更新

新規作成と同じコマンドは実行します。

$certbot certonly --manual -d <証明書を取得したいドメイン> -m <メールアドレス>
What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Keep the existing certificate for now
2: Renew & replace the certificate (may be subject to CA rate limits)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

これで2を選択すれば上記で作成した4つのpemファイルが更新されます。
pemファイルの履歴は「etc/letsencrypt/archive/ドメイン名/」ディレクトリにあります。

それからの手順は新規と同様です。

続けてお読みください

開発の醍醐味

この記事をシェアする
  • Facebookアイコン
  • Twitterアイコン
  • LINEアイコン

お問い合わせ ITに関するお悩み不安が少しでもありましたら、
ぜひお気軽にお問い合わせください

お客様のお悩みや不安、課題などを丁寧に、そして誠実にお伺いいたします。

お問い合わせはこちら
お電話でのお問い合わせ 03-5820-1777(平日10:00〜18:00)
よくあるご質問