【Docker】本番環境のLet’s EncryptのSSL証明書の自動更新がされていない!の対処法

3ヶ月に一度だから忘れるね。

KAGOYAのVPSで運用している、いくつかのRailsアプリ(それぞれ別のDockerコンテナをサブドメイン運用)を一括してNginxで配信しながら、Let’s EncryptでSSLに対応していたのですが、証明書の自動更新がされておらずウェブアプリにアクセスできなくなってしまっていました。えへへ///

さて、crt.shで証明書の更新履歴を確認します。

便利なサイト


crt.sh | Certificate Search

前回は2月に証明書が更新されていて、有効期限は本日でした。やはり何らかの理由で証明書の更新がコケてしまったみたいですね。

環境

  • Docker運用
  • KAGOYAのVPS
  • サーバはjwilder/nginx-proxy
  • SSLはjrcs/letsencrypt-nginx-proxy-companion
  • 複数サービスを一括してNginxで配信

一応、ホストOS側のcertsディレクトリを削除して、SSL証明書コンテナであるletsencrypt-nginx-proxy-companionを一度再起動します。通常であればこれで更新がかかってくれるはずです。

$ sudo rm -r certs/
$ sudo docker-compose down
$ sudo docker-compose up -d

だめでした。

そういえば、なんだか胸騒ぎが。

KAGOYAのコントロールパネルにログインしてセキュリティ設定を確認。
ありました、IPアドレスによるアクセス制限。絶対これが原因ですね。

アクセス制限を一時的にOFFにして、再度Dockerコンテナを再起動してみます。

証明書更新できました。サービス復旧🏆

公開日