Let's Encrypt でワイルドカード証明書を取得してみたら驚くほど簡単だったので、記事として残しておきます。
ワイルドカード証明書とは、サブドメイン全てに一致する証明書です。例えば *.example.com
で取得した証明書は、sub1.example.com
や sub2.example.com
に一致します 。
ワイルドカード証明書を使用することで、サブドメイン全てに個別の証明書を発行する手間が省けるため、管理がぐっと楽になります。
今回は Dry Run を使用して、証明書の発行ができることを確認するだけにします。
ワイルドカード証明書を発行するには、DNS を使用してドメインを検証する必要があります。
sudo certbot certonly --dry-run --manual --preferred-challenges dns-01
次に、発行先のドメインを聞かれます。
*.example.com
のように入力するだけで、自動的にワイルドカード証明書として発行してくれます。便利ですね。
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel):
*.example.com
最後にドメインの検証です。表示される案内に従って、DNS に TXT レコードを設定してください。
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
ランダムな文字列
Before continuing, verify the record is deployed.
Press Enter to Continue
DNS を設定したら、エンターキーを押すと証明書が発行されます。
先程は *.example.com
に対して証明書を発行しましたが、この証明書は example.com
には使用できません。
example.com
にも対応する証明書を作成するには、次のようにします。
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel):
*.example.com example.com
ワイルドカード証明書を発行するときに --manual
を指定する必要がありましたが、この影響でいつもどおり sudo certbot renew
しても怒られてしまいます。シェルスクリプトを作成して、引数に渡す必要があるみたいです。
デフォルトの certbot の設定では自動更新がなされないので、注意が必要です。