【KUSANAGI 7】Let's EncryptのSSL証明書が更新できなくて苦労した話。
毎度の事なんだけど、Let's Encryptからメールが来ていました。
Hello, Your certificate (or certificates) for the names listed below will expire in 19 days (on 07 Sep 21 10:56 +0000). Please make sure to renew your certificate before then, or visitors to your web site will encounter errors.例によって証明書の有効期限が迫っているという内容でした。
kusanagiコマンドで一発
kusanagiのプロヴィジョンの際に設定した、Let's Encrypt証明書の自動更新を有効にしているため、通常であれば何もしなくても証明書の更新がなされるはず。 実際に前回までは、更新ができていなかったらkusanagiコマンドを叩けば一発で更新ができる。# kusanagi update cert
# kusanagi ssl --email メールアドレスこのコマンドのどちらかを叩けば一発で更新できるはずなのだけれど、何度やってもダメで挙げ句の果てに何度もやり過ぎだと叱られてしまいました……。
Attempting to renew cert from /etc/letsencrypt/renewal/hogehoge.conf produced an unexpected error: urn:acme:error:rateLimited :: There were too many requests of a given type :: Error creating new authz :: Too many invalid authorizations recently.. Skipping.
kusanagi8.0.0から仕様変更
そういえばkusanagi8.0.0から、何か仕様変更があるような噂を小耳に挟みました。以下の2つの条件を満たすとき、kusanagi provision で www.example.com と example.com のどちらかを FQDN に指定すると、www.example.com と example.com の両方を VirtualHost として設定します。当ブログの場合また上記の FQDN の指定に加え、メールアドレスを指定して Let’s EncryptでSSL証明書を取得したとき、www.example.com と example.com の両方を登録したSSL証明書を取得します。
- www.example.com と example.com の両方が、DNS のAレコードに登録されている
- exmaple.com が whois情報に登録されている
- お名前.comのDNSレコードにwww.ice-military.comの1つを登録している。
- www.ice-military.comはwhois情報に登録済み。
crontabを確認
ブログの再構築と、お名前.comにwwwつきドメインを追加したことにより、無事Let's Encryptの証明書が再取得できたので、自動更新のスケジュールを見直すことにしました。 まず前提としてcrontabの読み方から……。# For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .-------------- hour (0 - 23) # | | .------------ day of month (1 - 31) # | | | .---------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .-------- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed管理人もいい歳ですので、こういうのもメモにしておかないとすぐに忘れてしまいます。 メモは大事、そしてそのメモをどこに書いて、どこに保管したのかも覚えておくことが大事。
07 03 * * 0 /usr/bin/kusabagi update certLet's Encryptの有効期限は90日で、有効期限が30日以上残っている証明書は更新しない仕組みになっているそうです。 以前のkusanagiは2ヶ月に1回自動更新を動作させるようになっていて、1度更新に失敗すると次の自動更新は証明書の有効期限が切れてしまうという問題を抱えていました。 ここはバージョンアップを重ねるごとに改善されたのでしょう。 今回確認したcrontabでは、毎週日曜日03時07分に自動更新が動作するように設定されています。 これだけの頻度ならば、特に見直す必要はなさそうですね(そっ閉じ 今回はDNSサーバーへのFQDN設定ということで片付きましたけど、たぶん3ヶ月後の管理人は忘れているはず。 次回以降、証明書関連でバタつかないように。

