Google Cloud Load Balancer(GCLB) でマネージドのSSL証明書がパブリックベータでリリースされました。
同時にManaged TLS証明書が GCEの HTTPS LB でサポートされました。https://t.co/YFsxBIlSHV#gcpja
— Yuta.H (@yutah_3) 2018年10月11日
Creating and Using SSL Certificates | Load Balancing | Google Cloud
AWS Certificate Manager のように無料かつ期限間近になると自動更新してくれるサービスがほしいと思っていました!
すでにSSL証明書を購入しているのでマネージドSSL証明書に切り替えてみました。すでにGCLBや既存のSSL証明書などの設定はしているものとします。
このあたりの設定が済んでない人はこちらの記事を参考に作成してみてください。
目次
Cloud SDKのアップデート
gcloudコマンドで操作するために最新版にアップデートします。
$ gcloud components update $ gcloud --version Google Cloud SDK 220.0.0 alpha 2018.09.04 app-engine-python 1.9.77 app-engine-python-extras 1.9.74 beta 2018.07.16 bq 2.0.34 cloud-datastore-emulator 2.0.2 core 2018.10.08 gsutil 4.34
マネージドSSL証明書を作成
残念ながらワイルドカード証明書(*.example.com
)はまだ未サポートのようです。
# リソースの作成 $ gcloud beta compute ssl-certificates create foo-example-com \ --domains foo.example.com # ターゲットプロキシとの関連付け $ gcloud beta compute target-https-proxies update basic-target-https-proxy \ --ssl-certificates foo-example-com
作成後、プロビジョニング状態になります。この状態から次の状態(アクティブ)になるには、次の条件を満たす必要があります。
- ドメインのDNSをAレコードで正引きした結果、ロードバランサのターゲットプロキシのグローバルIPアドレスが返される
- ターゲットプロキシとマネージドSSL証明書の関連付けられている
- フォワーディングルールの作成を含め、ロードバランサの設定が完了している
ドキュメントではアクティブになるまで30〜60分かかる可能性があるとありますが、私が手元で試したら10分程度でアクティブになりました。
$ gcloud beta compute ssl-certificates list NAME TYPE CREATION_TIMESTAMP EXPIRE_TIME MANAGED_STATUS foo-example-com MANAGED 2018-10-11T03:59:15.804-07:00 ACTIVE foo.example.com: ACTIVE
アクティブになればSSL証明書は有効になっています。証明書の発行を見ると Let's Encryptなんですね。
既存のSSL証明書から移行するときは注意
既存のSSL証明書から変更してわかったのですが、ターゲットプロキシを変更してアクティブになるまでの間、SSL証明書が無効になってしまいます。
解決策としては、マネージドSSL証明書用のターゲットプロキシを新規作成しマネージドSSL証明書を紐づけてから、そのターゲットプロキシをGCLBに紐付ければいけると思います。そのあたりの検証ができたらまた記事を書きます。
最後に
リリースされたばかりのマネージドSSL証明書を発行してGCLBに紐づけてみました。
AWS ACMと違って、ドメインの検証までGoogle側がやってくれるのは、上手いこと良い具合にやってくれるGoogleらしいです。
ただ、アクティブになるまでの条件が厳しいので、よくあるDNS認証をサポートしてくれると嬉しいですね。