Google Cloud で SSL 証明書を使う場合、更新の手間などを省けるようにマネージド SSL 証明書を使いたいという場合も少なくないのではないでしょうか。
今回は Google Cloud で使えるマネージド SSL 証明書を使用する際の注意点について紹介したいと思います。

証明書の種類

Google Cloud では以下の 2 種類の証明書を構成することができます。
基本的に Certificate Manager のほうが幅広いユースケースに対応できますが、設定のしやすさなどから Compute Engine SSL 証明書を選択するパターンもあるかと思います。

  • Compute Engine SSL 証明書
  • Certificate Manager

それぞれどのタイプのロードバランサに対応しているかは、公式ドキュメントの対応表がわかりやすいのでご覧ください。
証明書と Google Cloud ロードバランサ

Compute Engine SSL 証明書

Compute Engine SSL 証明書はロードバランサのリソースの一部として管理されており、コンソール上のロードバランサのページから管理・作成できるのはこちらになります。

また、Compute Engine SSL 証明書では以下の 2 つのステータスがあり、これらのステータスが ACTIVE になるまで証明書を使用することはできません。
作成時点では PROVISIONING となるため、ACTIVE になるのを待つ必要があります。

  • マネージドステータス
  • ドメインステータス

なお、FAILED 系のステータスになる場合は、以下のトラブルシューティングを参考に設定を見直しましょう。
SSL 証明書のトラブルシューティング

実際に作成

早速マネージド SSL 証明書を作成してみましたが、しばらくするとドメインステータスが FAILED_NOT_VISIBLE となりました。

上記のトラブルシューティングを確認したところ、この SSL 証明書のステータスを ACTIVE にするには、対象のマネージド SSL 証明書をロードバランサのターゲットプロキシに関連付ける必要があるとのことでした。
関連付けたら数時間後に ACTIVE になりました。

このように、ターゲットプロキシに関連付けてから SSL 証明書が ACTIVE になるまでには時間がかかるため、その間は SSL 証明書を使用できない状態となります。
つまり、その間は対象ドメインでトラフィックを受け付けられずダウンタイムが発生するため、リリース前の環境やダウンタイムを許容できる場合に使用することをオススメします。

Certificate Manager

Certificate Manager では、2 種類の認証方法でマネージド SSL 証明書を作成することができます。
現状では一部の操作がコンソール上で行えないため CLI を利用が必須となりますが、Compute Engine SSL 証明書よりも細かい設定が可能です。

余談ですが、上の画像にある従来の証明書には Compute Engine SSL 証明書が表示されます。
認証方法は以下の 2 種類があります。

  • ロードバランサ認証
  • DNS 認証

ロードバランサ認証

ロードバランサ認証は、DNS 関連の操作が必要ないため最も手軽に構成できるという点でメリットがあります。
しかし、Compute Engine SSL 証明書と同様にターゲットプロキシに証明書を関連付けてからステータスが ACTIVE になるまで時間がかかるため、対象ドメインでダウンタイムが発生することや、ワイルドカードに対応していないといったデメリットがあるためユースケースは限られます。

DNS 認証

DNS 認証は、ドメイン所有権の証明用に追加の DNS レコードを構成する必要がありますが、これまでと違い、ターゲットプロキシに関連付ける前に証明書のステータスを ACTIVE にすることが可能です。
そのため、ターゲットプロキシに関連付けてもダウンタイムが発生しないので、本番環境での適応やダウンタイムが許容できない場合はこの方法一択となります。
また、ワイルドカードにも対応しているため、幅広いユースケースで使用できるかと思います。(イメージとしては AWS Certificate Manager(ACM) に近いなと思いました。)

実際に作成

実際に DNS 認証のマネージド証明書を作成してみます。
Certificate Manager のコンソールから設定を進めていくと、認証タイプのところで DNS 認証リソースを作成することができます。

決められるのはリソース名のみのようなのでそのまま進めると、先程の画面にレコード情報が表示されました。

表示された通りに DNS レコードを設定して反映されるのを待っていると、数分後に証明書が ACTIVE になりました。

あとはロードバランサのターゲットプロキシへ関連付ければ、対象ドメインですぐにこの SSL 証明書が使えます。

おわりに

Google Cloud のマネージド証明書について、種類ごとに紹介しました。
慣れていないと予期しないダウンタイムが発生してしまう可能性も十分あるかと思いますので、マネージド証明書を使い始める際は注意しましょう。

参考

Google マネージド証明書のドメインの承認
証明書を Certificate Manager に移行する