はじめに
以前、下記URLの記事を書いてほぼ無料でhttpsで接続できるWEBサーバーを起動してから3か月が経過した。
SSL証明書にはLet's Encriptというサービスを使用しており、これは無料で使える利点がある反面、3か月で証明書の期限が切れるので3か月ごとに更新作業を行わなくてはならない。
そのため、今回はその更新作業手順を掲載する。
なおWEBサイトのダウンタイムは発生しない。
手順概要
おおまかな手順は以下の3点となる。
- 更新前のSSL証明書の期限を確認
- WEBサーバーに80番ポートでアクセスできるようにする
- WEBサーバーが起動しているdockerコンテナに入る
- SSL証明書更新コマンドを実行する
- 更新後のSSL証明書の期限を確認
1. 更新前のSSL証明書の期限を確認
2. WEBサーバーに80番ポートでアクセスできるようにする
SSL証明書の更新時に80番ポートにアクセスに来るので80番ポートを空けておく必要がある。
私の環境ではWEBサーバーはAWSのEC2で稼働しているので、AWSの画面を操作して80番ポートを開放する。
インバウンドルールにHTTPが存在しているか確認する。存在しなければ「インバウンドルールを編集」を押下して追加する。
3. WEBサーバーが起動しているdockerコンテナに入る
docker nameを確認
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
495abedbe13e reverse-ploxy_reverse-proxy "entrypoint.sh wait-…" 2 months ago Up 2 months 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp reverse-proxy
docker nameを指定してbashでログインする
docker exec -it reverse-proxy bash
root@495abedbe13e:/#
4. SSL証明書更新コマンドを実行する
下記コマンドを実行する
certbot-auto renew
実行結果
root@495abedbe13e:/# certbot-auto renew
Upgrading certbot-auto 1.9.0 to 1.12.0...
Replacing certbot-auto...
Your system is not supported by certbot-auto anymore.
certbot-auto and its Certbot installation will no longer receive updates.
You will not receive any bug fixes including those fixing server compatibility
or security problems.
Please visit https://certbot.eff.org/ to check for other alternatives.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/y-do.tk.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator nginx, Installer nginx
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for y-do.tk
Waiting for verification...
Cleaning up challenges
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/y-do.tk/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/y-do.tk/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
root@495abedbe13e:/#
5. 更新後のSSL証明書の期限を確認
まとめ
簡単な作業だけでSSL証明書を更新することが出来た。
しかし3か月ごとに更新をしないといけない。