SSL 証明書の概要

Google Cloud External HTTP(S) ロードバランサ、内部 HTTP(S) ロードバランサ、SSL プロキシ ロードバランサは SSL 証明書を使用して通信を保護し、サーバーをクライアントに認証します。

Google Cloud SSL 証明書リソースには、秘密鍵と SSL 証明書の両方が含まれ、ロードバランサのターゲット HTTPS プロキシまたはターゲット SSL プロキシに関連付けられます。以下では、SSL certificate は対応する秘密鍵を含む Google Cloud SSL 証明書リソースを意味します。

ロードバランサ、SSL 証明書、ターゲット プロキシ

ターゲット プロキシは、受信リクエストを次のダウンストリーム リソースに転送して、処理します。HTTPS ベースのロードバランサの場合、次のダウンストリーム リソースは URL マップです。SSL プロキシ ロードバランサの場合、ターゲット プロキシは受信リクエストを直接バックエンド サービスに転送します。

次の図は、ターゲット プロキシと関連付けられた SSL 証明書の負荷分散アーキテクチャにおける位置付けを示しています。

ターゲット プロキシ、SSL 証明書、その他のロードバランサ コンポーネント(クリックして拡大)
ターゲット プロキシ、SSL 証明書、その他のロードバランサ コンポーネント(クリックして拡大)

ロードバランサ

次の表に、SSL 証明書を必要とする Google Cloud ロードバランサの種類を示します。

ロードバランサの種類 クライアントからロードバランサへのプロトコル
内部 HTTPS ロードバランサ HTTPS または HTTP/2
外部 HTTPS ロードバランサ HTTPS または HTTP/2
SSL プロキシ ロードバランサ SSL(TLS)

SSL 証明書のスコープ

Google Cloud には、リージョンとグローバルの 2 つの SSL 証明書リソースのスコープがあります。

ロードバランサの種類 SSL 証明書リソースのスコープ gcloud リファレンス API リファレンス
内部 HTTPS ロードバランサ リージョン gcloud compute ssl-certificates --region regionSslCertificates
外部 HTTPS ロードバランサ グローバル gcloud compute ssl-certificates --global sslCertificates
SSL プロキシ ロードバランサ グローバル gcloud compute ssl-certificates --global sslCertificates

ターゲット プロキシ

SSL 証明書は、次の種類のターゲット プロキシに関連付けられます。

ロードバランサの種類 ターゲット プロキシの種類 gcloud リファレンス API リファレンス
内部 HTTPS ロードバランサ リージョン gcloud compute target-https-proxies --region regionTargetHttpsProxies
外部 HTTPS ロードバランサ グローバル gcloud compute target-https-proxies --global targetHttpsProxies
SSL プロキシ ロードバランサ グローバル gcloud compute target-ssl-proxies --global targetSslProxies

セルフマネージド SSL 証明書と Google マネージド SSL 証明書

独自のセルフマネージド証明書を取得するか、Google が取得および管理する証明書(Google マネージド証明書)を使用できます。

外部 HTTP(S) ロードバランサと SSL プロキシ ロードバランサの場合、Google マネージド、セルフマネージド、または両方の種類の組み合わせの SSL 証明書を 1 つのターゲット プロキシで参照できます。証明書は任意の順序で参照できます。内部 HTTP(S) ロードバランサの場合、セルフマネージド証明書を使用する必要があります。

  • セルフマネージド SSL 証明書は、ご自分で取得、プロビジョニング、更新する証明書です。この種類は次のいずれかになります。

    • ドメイン認証(DV)
    • 組織認証(OV)
    • 拡張認証(EV)証明書

    詳細については、公開鍵証明書をご覧ください。

  • Google マネージド SSL 証明書は、ドメイン用に Google Cloud が取得して管理する証明書で、自動的に更新されます。Google マネージド証明書はドメイン認証(DV)証明書です。証明書に関連付けられた組織や個人の ID を証明せず、ワイルドカードの共通名をサポートしません。

複数の SSL 証明書

ターゲット HTTPS またはターゲット SSL プロキシごとの SSL 証明書の最大数までターゲット プロキシを構成できます。同じロードバランサの IP アドレスとポートを使用して複数のドメインからサービスを提供し、ドメインごとに異なる SSL 証明書を使用する場合は、複数の SSL 証明書を使用します。

複数の証明書を指定した場合、SSL 証明書のリストの最初の証明書が、ターゲット プロキシに関連付けられたプライマリ SSL 証明書と見なされます。

クライアントがリクエストを送信すると、ロードバランサはクライアントが指定した SNI ホスト名を使用して、SSL 接続のネゴシエーションに使用する証明書を選択します。

可能な限り、ロードバランサは、クライアントが指定した SNI ホスト名と共通名(CN)またはサブジェクト代替名(SAN)が一致する証明書を選択します。クライアントのソフトウェアは、デジタル署名に RSA または ECDSA を使用できる必要があります。

使用可能な証明書のいずれも選択できない場合、またはクライアントが SNI ホスト名を指定していない場合、ロードバランサはプライマリ証明書(リストの最初の証明書)を使用して SSL をネゴシエートします。

複数の SSL 証明書(クリックで拡大)
複数の SSL 証明書(クリックで拡大)

ロードバランサからバックエンドへの暗号化

ロードバランサからバックエンド VM またはエンドポイントへの監査可能で暗号化された接続が必要な場合、次のようにします。

  • ロードバランサのバックエンド サービスを構成して SSL(TLS)、HTTPSHTTP2 プロトコルを使用します。
  • バックエンド サービスと同じプロトコルを使用してトラフィックを処理するように、バックエンド VM またはエンドポイントで実行するソフトウェアを構成します。
  • SSL 証明書をバックエンド VM またはエンドポイントにインストールします。これらの証明書は、ロードバランサの SSL 証明書と一致する必要はありません。

制限事項

  • 各ターゲット プロキシでサポートされる SSL 証明書の数には上限があります。詳細については、ターゲット HTTPS またはターゲット SSL プロキシあたりの SSL 証明書の制限をご覧ください。

  • 各マネージド証明書でサポートされるドメインの数には上限があります。詳細については、Google マネージド SSL 証明書あたりのドメイン数の制限をご覧ください。

  • Google マネージド証明書を SSL プロキシの負荷分散に使用する場合、Google マネージド証明書の自動更新を行うには、ロードバランサの転送ルールが TCP ポート 443 を使用する必要があります。

  • SAN 属性の証明書は SSL プロキシ ロードバランサでは使用できません。SAN 属性の証明書は、ターゲット SSL プロキシではなく、ターゲット HTTPS プロキシに関連付ける必要があります。

  • Google Cloud ロードバランサは、クライアント証明書ベースの認証(相互 TLS、mTLS)をサポートしていません。

  • Google マネージド SSL 証明書では、ワイルドカードの使用はサポートされません。

次のステップ