我が家のサーバーは昨年、Let’s Encrypt の無料証明書を使って、SSL化しましたが、そのとき、win-acme というツールを使いました。
仕事上のサーバーで使っている証明書は、通常1年。長いもので3年くらいの契約で、契約更新時に都度証明書をダウンロードしてApacheに設定するというような作業をしていますが、Let’s Encrypt は、いろいろ事情があって、3ヶ月に1回更新作業をしなければなりません。
win-acme には、自動化する方法もあるにはあるのですが、FTPサーバーを用意するとかいろいろ手順が面倒で、あまり時間が無い時に試していたこともあって、面倒になって、結局手作業で更新することにしました。 最初は、renew でコマンドを叩けば良いのかと思ってバッチ設定していたのですが、どうも、毎回DNSの TXT を新しい値で更新しなければならず、我が家の場合は、hajimesan.net / soundwalking.com / www.soundwalking.com の 3つを更新するわけですが、TTLが5分になっているので、ツールをスタートさせ、表示された値をTXTに設定して5分待ち、ツールの実行を先に進めて、TXTを削除して(待つ必要はない)次のドメインへというのを3回。最低でも15分はかかるので、少し面倒でした。
それでも、セキュリティに関係するところだし、ある程度やり方を覚えておくためにも、3ヶ月に1回くらいはよいかなぁとは思って、今日も Let’s からメールが来たので、更新したところです。
先日私のドメイン管理を、ValueDomainから、GoogleDomains に移管したのをきっかけに、GW中に自動化しようかなぁと思っていたところだった(すっかり忘れていて、今日のLet’sからのメールで思い出した)ので、調べてみたところ、certbot というツールを使うと自動化できるらしいので、やってみました。
これでうまくいくかどうかは、7月にわかります。
更新タイミングになったので、確認してみましたが、更新されていません。
手動で更新しようとして、certbot renew を叩いてみましたが、
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing C:\Certbot\renewal\hajimesan.net.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Renewing an existing certificate for hajimesan.net and soundwalking.com
Failed to renew certificate hajimesan.net with error: Missing command line flag or config entry for this setting:
Select the webroot for hajimesan.net:
Choices: ['Enter a new webroot', 'x:\\......\\xxxxxxx\\soundwalking']
(You can set this with the --webroot-path flag)
何故か hajimesan.net なのに webroot が soundwalking …. なんだこれは?と思って、調べてみたら、 hajimesan.net.conf と hajimesan.net-0001.conf だったか2つファイルがあって、どうやら最初に試しでいろいろやっているうちに設定ファイルが2つもできて、そのうちの hajimesan.net.conf の方の webroot が soundwalking になっていました。一旦 -d で両方とも削除して、作り直したのですが、今度は、webroot セクションが空っぽ。どこかに覚えているのか、certbot certonly した時もwebrootを聞かれずに完了してしまいました。仕方ないのでテキストエディタで開いて自分で [[webroot_map]]セクションを追加。とりあえずうまくいったけど、これで良かったのかどうか。
自動更新は失敗したけど、手動でやるにしても、winacme に比べたらずっと楽。DNSサーバーの設定変えずにコマンドだけで更新できるのはありがたいです。
わかるのは、次の更新の10月 (^^;
(追記) 2023/11/23 のバッチで自動更新されていました。