過去にAWS LightsailにLet’s Encryptによる証明書を設定する方法について記事を書きましたが、自分色々と見落としていて、証明書の更新について確認するのが漏れていました。
ということで、AWS Lighsailでbitnamiのイメージを使用していて、且つLet’s Encryptを使用している場合の証明書更新について記事を書こうと思います。
ドキュメント
ちなみにこのことについてはbitnamiのドキュメントに記載があります。
Generate and Install a Let's Encrypt SSL Certificate for a Bitnami Application
手順
1. /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
というファイルを作成する。
2. Apacheの場合は以下の内容で記述する。EMAIL-ADDRESS
、DOMAIN
については自分の環境に合わせて修正してください。
CAUTION
Nginxを使用している場合は、公式ドキュメントを参照してください。
#!/bin/bash
sudo /opt/bitnami/ctlscript.sh stop apache
sudo /opt/bitnami/letsencrypt/lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start apache
3. ファイルに実行権限を付与する。
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
4. crontab
を編集し、作成したscriptを定期実行するようにする。
sudo crontab -e
0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null
実行結果
$ sudo /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
Unmonitored apache
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd stopped
2020/01/28 18:39:18 [INFO] [blog.komeho.info] acme: Trying renewal with 423 hours remaining
2020/01/28 18:39:18 [INFO] [blog.komeho.info] acme: Obtaining bundled SAN certificate
2020/01/28 18:39:19 [INFO] [blog.komeho.info] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/2514064415
2020/01/28 18:39:19 [INFO] [blog.komeho.info] acme: use tls-alpn-01 solver
2020/01/28 18:39:19 [INFO] [blog.komeho.info] acme: Trying to solve TLS-ALPN-01
2020/01/28 18:39:26 [INFO] [blog.komeho.info] The server validated our request
2020/01/28 18:39:26 [INFO] [blog.komeho.info] acme: Validations succeeded; requesting certificates
2020/01/28 18:39:27 [INFO] [blog.komeho.info] Server responded with a certificate.
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80
Monitored apache
ちなみに
bitnamiイメージの場合は”Bitnami HTTPS Configuration Tool”というのも用意されているのですが、私は使用したことがないので分からず。
Learn about the Bitnami HTTPS Configuration Tool