Let’s Encryptの自動更新設定を毎月1日にして、初めての1日が訪れましたが、案の定失敗していました。。。
失敗内容を時系列に列挙すると、
・CentOS 6 標準のPython 2.6 だとLet’s Encryptクライアントが動かなくなってしまった。もともとエラーは出ていたようですが、前回の自動更新設定以降にバージョンアップが行われたっぽい。
・で、Python 2.7を入れてみたが、今度はyumが動かなくなってしまい、結局 yumはPython2.6を割り当てた。yumを2.6にしてしまうと、Let’s Encryptもyumを使っているようで意味なし。
・SCLを使用した解決方法(一時的に違うバージョンを使う方法)を先人が見つけてくれていたのでありがたく使わせていただくと、手動更新はOK!しかし、cronを使った自動更新ではSCLを実行しているはずなのにPythonのバージョンが標準と変わらず結局実行できない。
・いろいろ調べたら、SCLをcronから定期実行させるときは書き方が違うようだ。
・書き換えたらうまく動いたかのように見えたが、ドメインを複数指定(-d ji0vwl.net -d www.ji0vwl.net )するとなぜかエラーが出るので一つ(-d ji0vwl.net)にしてみたらOKとなった!手動だと2ついけるので理由は不明。出たエラーは、There were too many requests of a given type :: Error creating new cert・・・
ということで、めちゃくちゃはまってしまい、結局解決がGW最終日の夜中になってしまいました。本当は、yumをPython2.7で動かせれば完璧なのですが、自分のスキルが低すぎて手に負えないため、不本意ながら小手先の対処としました。
対処1:SCLで、一時的にPython2.7.5を使用できるようにする
$ sudo -i
# yum install centos-release-SCL
# yum install python27 python27-python-tools
対処2:crontabを編集し、SCL経由でLet’s Encryptを実行させる
# crontab -e
# run-parts
#1 4 1 * * /root/letsencrypt/letsencrypt-auto certonly –renew-by-default –webroot -w /var/www/html -d ji0vwl.net -d www.ji0vwl.net1 4 1 * * scl enable python27 “/root/letsencrypt/letsencrypt-auto certonly –renew-by-default –webroot -w /var/www/html -d ji0vwl.net”
6 4 1 * * service httpd restart