Raspberry Pi + nginx + certbot でSSL その3(ワイルドカード証明書編)

前の記事ではサブドメインまで決め打ちの証明書を作りました。
suzu-ha.com

これをワイルドカード証明書にしてみます。
*.<ドメイン> と <ドメイン> に対して有効な証明書を作ります。
(ドメインがexample.comなら、「*.example.com」「example.com」に対して有効な証明書です。)

証明書発行コマンドです。
sudo certbot から –agree-tos までで1つのコマンドです。
長いので \ で折り返しています。

myuser@myhost:~ $ sudo certbot certonly --manual \
--preferred-challenges dns \
-d *.<証明書発行対象のドメイン> -d <証明書発行対象のドメイン> \
-m <メールアドレス> --agree-tos
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Requesting a certificate for *.example.com and example.com
Performing the following challenges:
dns-01 challenge for example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
XXXX...................................XXXX
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

ここまで来たら、指示どおりDNSサーバにTXTレコードを作ります。

ホスト名 TYPE VALUE
_acme-challenge.<証明書発行対象のドメイン> TXT XXXX……………………………..XXXX

設定後反映されるまでタイムラグがあるので、別ウインドウあるいは別PCから確認しましょう。
digコマンドを使う場合は以下のとおり。設定したVALUEが表示されたらOKです。

myuser@myhost:~ $ dig -t txt _acme-challenge.<証明書発行対象のドメイン>
(中略)
;; ANSWER SECTION:
_acme-challenge.example.com. 3600 IN TXT   "XXXX...................................XXXX"

certbotコマンドを実行しているウインドウが「Press Enter to Continue」で止まっているはずですので、Enterキーを押して先に進めます。

Press Enter to Continue
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your certificate will expire on 2023-04-14. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
Donating to EFF:                    https://eff.org/donate-le

nginxのサイト設定ファイルを編集、nginxを再起動します。前の記事と同様なので省略します。

証明書の更新ですが、ワイルドカード証明書の場合はDNS認証(TXTレコードを仕込む)が必要なため自動更新は難しいです。
certbotコマンドのDNSプラグインが提供されていれば自動更新できるかもしれません。
User Guide — Certbot 2.9.0 documentation

うちの場合は、自動更新はあきらめて3か月に1回手動更新することにしました。
手動更新の場合は、証明書発行と同じコマンドでOKです。

コメント

タイトルとURLをコピーしました