Let’s Encrypt のワイルドカードSSL証明書は、DNS認証でしか取得できないため、自動更新をするためには、DNSレコードを操作できるAPIを提供しているサービスを使う必要があります。
今回は、Google Cloud DNSを使った自動更新の仕方を紹介します。
以前書いた記事「Let’s Encrypt SSL証明書で、ワイルドカードの証明書を発行する方法(DNS認証)」
Google Cloud DNS
◆DNSゾーン作成
Google Cloud Platform – ネットワークサービス – Cloud DNS – DNSゾーン作成
例:
ゾーン名:example-com-zone (ドメイン名を使いつつわかりやすい名称にしておく)
DNS名:example.com (ドメイン名)
DNSSEC:Off
タイプ:公開
◆レコードセット追加
ゾーンを作ったら、DNSレコードを追加
◆DNSレコード確認
dig コマンドで DNSレコードを確認
※ネームサーバーを変える必要がある場合は 既存のネームサーバーに登録してあるDNSレコードと同一になっているか しっかり確認。
1 |
dig @ns-cloud-c1.googledomains.com example.com |
対象ドメインのネームサーバーを変更 (既存からの移行時)
ドメインを管理しているサービスで 対象ドメインのネームサーバーをGoogle Cloud DNSのサーバーに変更。
ns-cloud-c1.googledomains.com
ns-cloud-c2.googledomains.com
ns-cloud-c3.googledomains.com
ns-cloud-c4.googledomains.com
↓例としてお名前.comの場合
Google Cloud DNS API
dns-google-credentialsファイルを用意する。サービスアカウントで、DNS管理者権限をもったアカウントを作成して、認証ファイルをダウンロードする。
1 2 3 4 5 6 7 8 9 10 |
$ mkdir -p /root/.secrets/certbot $ cat << EOF > /root/.secrets/certbot/google.json { "type": "service_account", ・・・ } EOF $ chmod 600 /root/.secrets/certbot/google.json |
ワイルドカード SSL 証明書作成
1 |
./certbot/certbot-auto certonly --dns-google --dns-google-credentials /root/.secrets/certbot/google.json -d *.example.com -d example.com --server https://acme-v02.api.letsencrypt.org/directory --manual-public-ip-logging-ok -m 'info@example.com' --agree-tos |