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

Let's Encryptのワイルドカード証明書の取得と自動更新について(MyDNS)(2018/08現在)

More than 1 year has passed since last update.

Let's Encryptのワイルドーカード証明書ってナイスですよね。
5月にとったワイルドカード証明書の更新がミスっていたので設定し直しました。
情報が色々あって混乱したのでまとめます。

ワイルドカードの更新にはDNSのTXTレコード編集が必要です。
私はMyDNS使っているのでサービス謹製のツールを使います。
他のDNS使っている人はそれぞれスクリプト作るとか、作ってあるのを探すとかすれば良いと思います。

MyDNSのツール:
https://github.com/disco-v8/DirectEdit/

なにはともあれcertbotのインストール

なんかgithubからcloneしてある人もいると思いますがまぁ、パッケージ管理のモノを使うのが楽だと思います。

# Ubuntu
sudo apt install certbot
# AmazonLinux2
sudo yum install certbot

既存の証明書を消す

既存であるやつはめんどくさいので消しましょうか。

sudo su
cd /etc/letsencrypt
rm -frv ./*

MyDNSのツールを適当な所に落とす

私は/var/www/letsencryptgit cloneしました。

sudo su
mkdir -p /var/www/letsencrypt
cd /var/www/letsencrypt
git clone https://github.com/disco-v8/DirectEdit.git

証明書を取得する

普通の証明書とワイルドカード証明書を一気にとります。
ドメインとメールアドレスだけ変えてコマンド流してください。
lovesaemi.daemon.asia*.lovesaemi.daemon.asiaあなたのメールアドレスのところね。

sudo su
certbot certonly --manual \
--preferred-challenges=dns \
--manual-auth-hook /var/www/letsencrypt/DirectEdit/txtregist.php \
--manual-cleanup-hook /var/www/letsencrypt/DirectEdit/txtdelete.php \
-d lovesaemi.daemon.asia -d *.lovesaemi.daemon.asia \
--server https://acme-v02.api.letsencrypt.org/directory \
--agree-tos -m あなたのメールアドレス \
--manual-public-ip-logging-ok

取れました。

WEBサーバー設定して確認

ここはApacheとかNginxとかH2Oとかで作業変わると思うので割愛します。
普通の証明書もワイルドカードの証明書も一つになるので楽になりましたね。

自動更新の確認

確認はしとかないといけませんね
下記コマンド流してエラーが出ないことを確認します

# Apacheの場合
certbot renew --force-renew --dry-run --webroot-path /var/www/html/ --post-hook "systemctl reload httpd"
# H2Oの場合
certbot renew --force-renew --dry-run --webroot-path /var/www/html/ --post-hook "systemctl reload h2o"

うまくいけばエラーも表示されず問題ないことが確認できると思います。

cron設定

実はまだ実際に更新するところは確認できてないんですけど。。
まぁ、こんな感じかな、と思います。

cronは以下みたいになります。
Ubuntuの場合です。AmazonLinuxとかだとcertbotとかのパスが違うと思うのでwhichしましょ。
実際はWEBサーバーのreloadとかrestartとかしなくてもいけるっぽいことを書いているサイトがありましたが、どうなんでしょう?この辺はおいおい確かめていけば良いですかね。

# Ubuntu
  0   0  */5 *   *     /usr/bin/certbot renew --webroot-path /var/www/html/ --post-hook "/bin/systemctl reload h2o" >> /var/www/letsencrypt/update.log 2>&1
# とか
# AmazonLinux2
  0   0 */10 * *       /bin/certbot renew renew--webroot-path /var/www/html/ --post-hook "/bin/systemctl reload httpd" /dev/null 2>&1

その他

ロードバランサー配下のWEBサーバーに個別に証明書とるときの特有のコマンドあるらしいですが割愛します。ロードバランサーに証明書つければ良いのではないかな、個人的には思いますが。

以上です

実際はまだ更新できていないのでわからんのですけど、多分うまいこと行くと思います。

追記(2019/01/29)

自動更新OKでございます。ノーメンテで運用中。

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
ユーザーは見つかりませんでした