Google Domainsで無料のワイルドカードSSLを発行した話

Google DomainsでワイルドカードSSLを発行
  • URLをコピーしました!

格安SSLからLet’s Encrypt、ZeroSSLと渡り歩いてきましたが、今回Google Trust ServicesのSSLへと変更しました。

目次

Google Trust Servicesへ変更した理由

ワイルドカードのSSLも無料で作る事ができ、さらに自動更新も可能なため

これが判明したため、さっさとZeroSSLから乗り換えることにしました。

ワイルドカードSSLの大変さ

ワイルドカードSSLを無料で作ることは大変です。

ZeroSSLの場合、マルチドメインSSLは無料で作る事ができます。
しかし、ワイルドカードSSLは有料となります。

Let’s Encryptの場合、ワイルドカードSSLを作る事はできます。
しかし、HTTP認証ではなく、DNS認証が必要となります。
DNS認証は、認証時にTXTレコードを書き込む必要があるため、自分でDNSサーバを運用していないと難しいです。

証明書の期限も短いので、手動で更新するのも面倒です。
そのため、ワイルドカードは諦めて、HTTP認証で取得できるシングルドメインかマルチドメインのSSLを選択することが多いです。

Google Domainsが契約者に無料のSSLを提供開始

2023年3月頃からGoogle Domainsの契約者向けに無料のSSL証明書を発行してくれるようになりました!
詳しくは以下のGoogle Online Security Blogに記載されています。

DNS認証にも対応しています。

Google Domainsへ移管して良かった・・・

ワイルドカードSSLの取得方法

実際にワイルドカードSSLが取得できるか試してみました。

STEP
Google Domainsの管理画面から必要なキーを取得
  • Google Domainsにログインし、ドメインを選択
  • 左メニューにあるセキュリティを選択
  • Google Trust Servicesの中にあるEABキーを取得を選択し、EABキーIDEAB HMACキーを控える
  • ACME DNS APIにあるトークンを作成をクリックし、アクセストークンを控える
STEP
Pythonライブラリをインストール
  • certbot-dns-google-domainsのインストール
# python -m pip install certbot-dns-google-domains
  • Python3.7以上が必要です。
  • certbotのパスが/usr/bin/certbotではない場合は、/usr/bin/certbotへシンボリックリンクを張りましょう。
STEP
Certbotへ登録
  • 以下のコマンドを実行しますが、<CONTACT EMAIL>はメールアドレス、<EAB_KEY_IDは>はEABキーID、<WAB_HMAC_KEY>はEAB HMACキーに置き換えてください。
# certbot register --email <CONTACT_EMAIL> --no-eff-email --server "https://dv.acme-v02.api.pki.goog/directory"  --eab-kid "<EAB_KEY_ID>" --eab-hmac-key "<EAB_HMAC_KEY>"
STEP
アクセストークンを記載したファイルの作成
  • 以下のコマンドを実行してアクセストークンを記載したファイルを作成します
# vi /var/lib/letsencrypt/dns_google_domains_credentials.ini
  • <ACCESS TOKEN>はアクセストークンへ置き換えてください。
dns_google_domains_access_token = <ACCESS TOKEN>
  • ファイルへの権限を設定します。
# chmod 600 /var/lib/letsencrypt/dns_google_domains_credentials.ini
STEP
ワイルドカードSSLの発行
  • 以下のコマンドを実行してSSL証明書を発行します。<DOMAIN NAME>はドメイン名へ置き換えてください。
    例)-d *.example.com
# certbot certonly \
--authenticator 'dns-google-domains' \
--dns-google-domains-credentials '/var/lib/letsencrypt/dns_google_domains_credentials.ini' \
--server "https://dv.acme-v02.api.pki.goog/directory" \
-d "<*.DOMAIN NAME>"
  • ドメイン名のみのSSLも含んだSSLが必要な時はこちら
    例)-d *.example.com -d example.com
# certbot certonly \
--authenticator 'dns-google-domains' \
--dns-google-domains-credentials '/var/lib/letsencrypt/dns_google_domains_credentials.ini' \
--server "https://dv.acme-v02.api.pki.goog/directory" \
-d "<*.DOMAIN NAME>" -d "<DOMAIN NAME>"
  • 以下のパスに証明書ファイルがあるか確認し、nginxやapacheへ設定します。
/etc/letsencrypt/live/ドメイン名/fullchain.pem
/etc/letsencrypt/live/ドメイン名/privkey.pem
STEP
cronに登録
  • 自動更新するためにcronへ登録します。以下は一例です。
0 0 */15 * * certbot renew && systemctl restart httpd > /dev/null

Google DomainsとワイルドカードSSLの組み合わせは最高!

無事にワイルドカードSSLが発行されました。
ワイルドカードSSLが必要な方には、Google Domainsへ移管すると確実に幸せになれると思います。
ワイルドカードSSLが不要な方は無理に移管しなくても良いのですが、HTTP認証のみ80を通す設定を.htaccessへ書き込むよりも、Google DomainsでDNS認証をした方が楽だと思いました。

関連リンク先

Google DomainsでワイルドカードSSLを発行

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次