Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした