SSLサーバー証明書(Let's Encrypt)の更新に失敗(crontabの書き方のつまらないミス)
昨年10月28日に、さくらVPSのサーバーにLet's EncryptのSSL証明書を入れました。
Let's Encryptは、ドメイン認証SSL証明書を無償で発行するサービスを提供しており、これを利用しています。証明書の期限は3か月で、更新作業を頻繁にする必要があります。通常はcronに設定することが多いようです。
今日、そのサーバーにSSLでアクセスしたら証明書エラー(期限が切れている)が発生していました。
あれ、cronが動いていないのかな?
~$ sudo crontab -l 50 05 01 */3 * /usr/local/bin/certbot-auto renew --force-renew && /sbin/service reload nginx
cronのログを見たところ、1月1日にしっかり動作した記録があります。
Jan 1 05:50:01 www CROND[13550]: (root) CMD (/usr/local/bin/certbot-auto renew --force-renew && /sbin/service reload nginx)
取得したファイルのタイムスタンプは2017-01-01T05:50 になっています。
/etc/letsencrypt/archive/www.torukt.com/fullchain2.pem ほか
crontabのコマンドを実行すると、
$ sudo /sbin/service reload nginx reload: 認識されていないサービスです。
あっ、service nginx reload が正しい順序でした。
手動でnginx のreloadをしたら、Webブラウザから正しく接続することができました。
ということでcrontab の記述を修正しました。
50 05 01 */3 * /usr/local/bin/certbot-auto renew --force-renew && /sbin/service nginx reload