見出し画像

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

トラベラーという昔のSFRPGのソロジャーナル化を頑張っています。印刷代の足しにしてやるぜ!という嬉しい方がいましたらメンバーシップ入って頂けると喜びます。