いつの間にやらLet’s Encryptにてワイルドカード証明書が発行される様になりましたので記録します。(今回はTXTレコードにワンタイムトークンパターン)
取り合えず、certbotをgitから更新してあげます。
どうやら0.22.0以上が必要みたいなので
発行コマンド
./certbot-auto certonly --manual -d *.ドメイン名 -d ドメイン名 -m メールアドレス --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
ポイントはサブドメインのワイルドカードだけではなく、通常のドメインを指定してあげます。
こうしてあげないと例えば『market.kagamikarasu.net』は取得できますが、
『kagamikarasu.net』の証明書は発行されません。
--preferred-challenges dns-01
こちらはTXTレコードで認証を行う指定です。
--server https://acme-v02.api.letsencrypt.org/directory
上述URLにもある様に本番環境のエンドポイント指定です。
------------------------------------------------------------------------------- Please deploy a DNS TXT record under the name _acme-challenge.kagamikarasu.net with the following value: gMMhxHib_7diSzom6AY6SraFylWNK9GfMyTa2DOrnN4 Before continuing, verify the record is deployed. ------------------------------------------------------------------------------- Press Enter to Continue ------------------------------------------------------------------------------- Please deploy a DNS TXT record under the name _acme-challenge.kagamikarasu.net with the following value: 9sRuHQUt2kDgSeg0s5Uy1zzei0v2pgJOTgT2eFxXQAY Before continuing, verify the record is deployed. ------------------------------------------------------------------------------
_acme-challenge.、TXTレコードにそれぞれワンタイムトークンを書き込む。
Failed authorization procedure. kagamikarasu.net (dns-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: DNS problem: NXDOMAIN looking up TXT for _acme-challenge.kagamikarasu.net
もちろんTXTレコードが反映される前に『Press Enter to Continue』を押すとエラーが起きます。
dig -t TXT _acme-challenge.kagamikarasu.net
digとかnslookupでTXTレコードを確認しといてあげます。
確認出来れば下記の様に設定した値が返ってくるでしょう
;; ANSWER SECTION: _acme-challenge.kagamikarasu.net. 3600 IN TXT "gMMhxHib_7diSzom6AY6SraFylWNK9GfMyTa2DOrnN4" _acme-challenge.kagamikarasu.net. 3600 IN TXT "9sRuHQUt2kDgSeg0s5Uy1zzei0v2pgJOTgT2eFxXQAY"
これで証明書が発行されましたので、『/etc/letsencrypt/live』等を確認してみましょう。