Ubuntu18とLet'sEncryptのDNS-01チャレンジでワイルドカードSSL証明書をacme-dns-certbotを使用して自動更新したメモ
環境
さくらのVPS
Ubuntu18
Apache2.4
Nginx
ドメインいくつか(さくらのネームサーバーゾーン設定とfreenom)
既にcertsbot導入済
参考
古いcertsbotの退避
sudo mv /etc/letsencrypt /etc/letsencrypt.old とでもしておきます。
Certbotのインストール
sudo apt-add-repository ppa:certbot/certbot
sudo apt install certbot
certbot --version
最新版のバージョンが出力されればOK
acme-dns-certbotをインストールする
sudo wget https://github.com/joohoi/acme-dns-certbot-joohoi/raw/master/acme-dns-auth.py
sudo chmod +x acme-dns-auth.py
sudo vim acme-dns-auth.py
最初の行を以下のように修正します。
#!/usr/bin/env python3
ファイルを保存して、
sudo mv acme-dns-auth.py /etc/letsencrypt/
cd /etc/letsencrypt/ でファイルが正しく移動したことを確認します。
acme-dns-certbotの設定
sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d \*.ドメイン名1 -d ドメイン名1 -d \*.ドメイン名2 -d ドメイン名2
ワイルドカード証明書を発行する場合は、必ず記号(\)を使用してアスタリスク(*)をエスケープしてください。
らしい。
途中で出てくる
・メアド登録→よしなに。ここに更新迫ってるよとかくる感じ?
・ポリシーに同意→a、エンター
・メアド共有する?→n、エンター
Output
...
Output from acme-dns-auth.py:
Please add the following CNAME record to your main DNS zone:
_acme-challenge.ドメイン名 CNAME a15ce5b2-f170-4c91-97bf-09a5764a88f6.auth.acme-dns.io.
Waiting for verification...
...
とか出てくるので、
・サブドメインを_acme-challenge
・種類をCNAME…だとエラーがでるのでTXT
・上の例なら中身を a15ce5b2-f170-4c91-97bf-09a5764a88f6
・TTLを 300
に設定。
だめだ、CNAMEに_acme-challengeが設定出来ないし、TXTにすると不正って怒られる。とりあえず実験中のほうを/etc/letsencrypt.acmeとでもして古いほうを元にもどして再設定。止めてたサーバーを動かして…txtレコード削除しちゃったのになぜかSSL有効で動くなぁ。90日後にまた何とかしよう。
結論
以下コマンドを手動打ちするのが一番確実みたい。VPS放置しないで済むし。acme方式はDNS書き換え対応してるサーバーと契約するかBINDいじれる人じゃないと無理。どっちもやだ。
sudo certbot certonly --manual --preferred-challenges dns -d \*.ドメイン1 -d ドメイン1 -d \*.ドメイン2 -d ドメイン2 -m 登録したメールアドレス --agree-tos --manual-public-ip-logging-ok