Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What is going on with this article?
@MokeeeMokeee

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
10
Help us understand the problem. What is going on with this article?
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
MokeeeMokeee
ガンバルンバ

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
10
Help us understand the problem. What is going on with this article?