先日、二年ぶりに The Let’s Encrypt Team からサーバ証明書の期限切れが近づいている旨のメールを受け取った。証明書の更新を確認して Web サーバのエラーを確認せよ、との事だが、基本的に毎月はじめに Team 提供のスクリプトで証明書は更新しているはず。
Webサーバのログを見てみると確かに更新が失敗していた。Rotated している過去ログを見ると、先月から失敗しているようだった。dry-run モードで実際に実行してみると、ログに記録されているものと同じ結果となった:
IMPORTANT NOTES:
– The following errors were reported by the server:
Timeout during connect (likely firewall problem)
二年前に遭遇した際も同じログだったので、てっきり Firewall に余計なURLsが追加されて[a]Let’s Encrypt は HTTP のポートにアクセスしてくるので、ここにアクセスしてくるサーバを排除したとか。サーバのNGリストは自動更新しているので、稀に間違ったsource(IPアドレス)を追加してしまうケースあり 😅️。、Access Denied したのかもしれないと思った 。と云うことで Firewall のログと日付を睨めっこして 、問題発生する前の URLs に戻してから、もう一度 dry-run モードで実行したが、結果は同じだった 。
ふm。HTTP→HTTPSの Redirect も問題ない。問題発生する前から Let’s Encrypt からのアクセスは Redirect しないようにしている。
期限が迫る中、何か簡単には対応できなさそうに思えていた矢先に、こんな記事を発見した:
確かにスクリプト(certbot-auto)を dry-run モードで実行したら、次のようなログが記録されていた:
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.
どうやら使っているスクリプトは Debian 系プラットフォームではサポートされなくなって久しくなったようだ(もう4年も経過している)。
そして代わりに使える方法を教えてくれる https://certbot.eff.org/ にアクセスし、Web サーバの構成を入力して代替方法を得ることができた 。そこで提示された手順にしたがって実行していくと証明書の更新が成功した:
$ certbot –version
certbot 2.10.0
ひとまず次の期限切れまで監視はしていく予定だが、なぜに、このような大事なことが事前に連絡されないのだろうか 。
参照
↑a | Let’s Encrypt は HTTP のポートにアクセスしてくるので、ここにアクセスしてくるサーバを排除したとか。サーバのNGリストは自動更新しているので、稀に間違ったsource(IPアドレス)を追加してしまうケースあり 😅️。 |
---|