LoginSignup
16
10

More than 5 years have passed since last update.

Let's Encryptをcrontabで自動化した時に実行されない時の対処法

Posted at

Let's Encryptとは

日本語ではレッツ・エンクリプトと読みます。無料ですぐに利用可能なSSLサーバー証明書で、アメリカの非営利団体ISRG (Internet Security Research Group) が、2016年から提供しているサービスです。
それまでSSLといえば個人情報を入力するフォームなどには必要な手段にもかかわらず、高く(数万円~数十万円)、手続きが面倒でした。ところがLet’s Encrypt誕生のおかげで誰でも、いつでも、かなり簡単にSSLが利用できるようになります。画期的なサービスの登場です。
この記事ではわかりやすくするために、単に「SSL」と表記していますが、実際は少し複雑です。より詳しくお知りになりたい方は、下記の記事をご覧ください。

環境

Apache/2.4.33
aws-cli/1.14.8 Python/2.7.14 Linux/4.14.42-61.37.amzn2.x86_64 botocore/1.8.12

crontabを使用した自動化

terminal
# vim /etc/cron.d/letsencrypt
/etc/cron.d/letsencrypt
00 16 * * 2 root /usr/bin/certbot-auto renew --post-hook "service httpd restart"

※この書き方だと毎週火曜日の16:00に実行されるようになっています。
詳しいことはLet's Encryptの方を参照してください。

これで上手くいけばなんも心配はないのですが。
ここからはLet's Encryptを自動化しようとした時に見るべき項目を書いていこうと思います

トラブルシューティング

(1)cronがそもそも動いているのか

terminal
# /etc/rc.d/init.d/crond status
crond (pid  xxxx) を実行中...

(2)runlevelに合わせてonになっているか

(2~5がonになっていればok)

terminal
# chkconfig --list crond
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

(3)Pathがしっかりしているか。(自分はこれが原因でした。)

terminal
# echo $PATH
/opt/rh/python27/root/usr/bin:/usr/local/rbenv/shims:/usr/local/rbenv/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
/etc/cron.d/letsencrypt
PATH=/opt/rh/python27/root/usr/bin:/usr/local/rbenv/shims:/usr/local/rbenv/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
00 16 * * 2 root /usr/bin/certbot-auto renew --post-hook "service httpd restart"

※Pathは自分の環境に合わせて変更の方してください。

(4)それでもダメならlogで確認してみてください。

terminal
# touch /tmp/analog.log && touch /tmp/analog-err.log
/etc/cron.d/letsencrypt
00 16 * * 2 root /usr/bin/certbot-auto renew --post-hook "service httpd restart" >>/tmp/analog.log 2>>/tmp/analog-err.log

これで作成した。analog.logとanalog-err.logを確認してみましょう。

 まとめ

いかがだったでしょうか?
自分が主に思いつく解決方法や起こりうるトラブルを書きました。
何か質問や気になる事があればTwitterなどでも良いので声をかけてくれれば、出来る範囲で対応します。

TwitterID
@uechan9220
16
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
10