格安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が取得できるか試してみました。
- Google Domainsにログインし、ドメインを選択
- 左メニューにあるセキュリティを選択
- Google Trust Servicesの中にあるEABキーを取得を選択し、EABキーIDとEAB HMACキーを控える
- ACME DNS APIにあるトークンを作成をクリックし、アクセストークンを控える
- certbot-dns-google-domainsのインストール
# python -m pip install certbot-dns-google-domains
- Python3.7以上が必要です。
- certbotのパスが/usr/bin/certbotではない場合は、/usr/bin/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>"
- 以下のコマンドを実行してアクセストークンを記載したファイルを作成します
# 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
- 以下のコマンドを実行して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
- 自動更新するために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認証をした方が楽だと思いました。
関連リンク先
【追記】今ならCloudflareが良さそう
Google Domainsが終了してしまったので、現在はCloudflareを利用するのがおすすめです。
発行される証明書もGoogle Trust Servicesですので同じです。

