Let's Encryptのワイルドカード証明書を早速発行してもらう

2018-03-14 技術

Let’s Encryptでワイルドカード証明書を発行してみました。

ワイルドカード証明書

遂に……遂に来ましたね。 Let’s Encryptのワイルドカード証明書が。

ACME v2 and Wildcard Certificate Support is Live

非常におめでたいです🎉

これで、サブドメインをたくさん切って運用してるサービスなんかの証明書の管理がグッとラクになりますね。

早速取得してみる

注意点としては、

  • ワイルドカード証明書はACMEv2エンドポイントからのみ発行できる
  • ワイルドカード証明書はDNS-01チャレンジでのみ発行できる

公式のCertbotは0.22.0からACMEv2に対応しており、DNS-01チャレンジにも対応してます。 DNS-01では、_acme-challenge.example.comのようなTXTレコードを作成してドメインの所有を確認します。

手順

適当にCertbot(certbot-auto)をインストールしたら、以下のようなコマンドを実行します。 明示的にACMEv2エンドポイントとDNS-01チャレンジを指定する必要がります。

certbot certonly \
--manual \
--preferred-challenges dns-01 \
--server https://acme-v02.api.letsencrypt.org/directory \
--domain *.kiritan.com

すると、以下のように「IP記録するけどいい?」って確認されます。 DNS-01は、実際に証明書を使うサーバー以外からも発行が要求できるんですが、要求元のIPアドレスが記憶されるみたいです。

-------------------------------------------------------------------------------
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
-------------------------------------------------------------------------------
(Y)es/(N)o:

進むと、以下のようなレコードを設定しろと言われるので、設定します。

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.kiritan.com with the following value:

f4WTOGBdEhZF7aAx9mZof8X9072JVUKDR7FhmUlKiYo

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue

ボクはConoHaのDNSを使っています。 普通にWebブラウザからレコードを設定するのはもちろん、API経由で設定もできるので非常に便利です。 あと、DNSサービス自体は無料です。ふとっばらですね。

宣伝:ConoHaのDNS APIをCLIから叩くやつを作った

あと、AWSのRoute53みたいな有名サービスなら、プラグインが存在するので手軽にDNS-01による確認ができるみたいです。 Certbot Docs » User Guide » DNS Plugins

今度ConoHaのDNSでも簡単に証明書がとれるDNS-01プラグインを書いてみようかな???

適切にTXTレコードを設定したら、エンターキーを押せば終わり!

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/kiritan.com/fullchain.pem

簡単ですね! あとは、HTTPサーバに設定してあげれば夢のワイルドカード証明書によるHTTPS化が完了です!

うわ〜〜ワイルドカードだ〜〜うれしい〜〜

おわり

TXTレコードを設定するところが自動化できるなら、本当に証明書管理の手間が少なくなると思います。

別のアプローチで管理の手間をなくす記事もあります。見てね。 lua-nginx-auto-sslで全自動HTTPS