Let's Encryptの更新に失敗する原因
無料で SSL/TLS のサーバ証明書 (DV 証明書) を発行できることで人気の Let's Encrypt ですが,90 日ごとに更新しなければなりません.
更新作業自体は簡単ですが,手順を間違えて失敗することもあったので,メモしておきます.
ポートが使われている場合
恐らく失敗する原因として最も多いのが,ポートが既に利用されているケースです.
Let's Encrypt は DV 証明書なので,利用するドメインに接続して認証する必要があります.そのため,更新する際には一度アプリケーションサーバを止めることになります.
タイミング悪く,この数秒の更新中にアクセスしてきたユーザーにはもれなくエラーが返されます...
terminal
# systemctl stop httpd.service
# certbot -h renew
# systemctl start httpd.service
ちなみに,実際には更新せず,ただテストしたい場合は 2 行目のコマンドの代わりに,こちらのコマンドで.
terminal
# certbot renew --dry-run
ドメインがリダイレクトされている場合
サーバ証明書を取得するとき,mktia.com, www.mktia.com, blog.mktia.com の 3 つで使えるようにしました.
更新作業を行ったところ,mktia.com だけが更新に失敗してしまい,その理由を考えていたのですが,ふとリダイレクトが原因なのではないかと思った次第です.
mktia.com に接続があった場合は www.mktia.com にリダイレクトするように .htaccess 辺りに記述したはずなので,ドメインを介した認証ができなさそうですね.
www.mktia.com のサーバ証明書は更新できているので,問題なく SSL/TLS で通信できていますし, まあいいのかな...