Dockerを使ってたてたMisskeyサーバーのSSLサーバー証明書が期限切れ間近となりました。
このままだとアクセスできなくなってしまうので更新しました。
その手順を説明します。
こちらの記事の手順でたてたMisskeyサーバーを対象としています。
あわせてご覧ください。
更新手順
実際の作業はMisskeyサーバーのコンテナではなく、リバースプロキシとして使っているNginxのコンテナが対象となります。
Nginxのコンテナ用ディレクトリに移動します。
# 例
cd ~/docker/nginx
実際に更新をする前に問題なく更新できるかどうか、下記のコマンドを実行して確認します。
sudo docker compose run --rm certbot renew --webroot -w /var/www/html --dry-run
「Congratulations, all simulated renewals succeeded:」というメッセージの後に対象としているドメイン名があれば更新はうまくいくと思われます。
なお、上記コマンドで指定した「certbot」はcompose.yaml等で設定しているサービス名になります。
certbot:
image: certbot/certbot
volumes:
- /etc/letsencrypt:/etc/letsencrypt
- /var/www/html:/var/www/html
command: ["--version"]
STEP2で正常に更新されることが確認できたら下記のコマンドを実行して更新します。
sudo docker compose run --rm certbot renew --webroot -w /var/www/html
STEP2で実行したコマンドから「–dry-run」を削除したものになります。
リバースプロキシとして使っているNginxのコンテナを下記のコマンドを実行して再起動します。
sudo docker compose restart
以上でSSLサーバー証明書の更新は完了です。
補足説明
更新手順 STEP2にもあるとおり、SSLサーバー証明書はホストマシンの/etc/letsencryptディレクトリ配下に配置されています。
/etc/letsencrypt/liveディレクトリ以下にドメイン毎のディレクトリが存在します。
その中のファイルの更新日時を見れば実際に更新されているかを確認することができます。
まとめ
コマンド一つで簡単に更新できることが分かっていただけたかと思います。
この記事が参考になれば幸いです。
コメント