SSL 証明書の概要

Transport Layer Security(TLS)プロトコルは、インターネットなどのネットワークを通じ、クライアントからサーバーに、またはクライアントからロードバランサに転送中のデータのプライバシーとセキュリティを提供します。これを実現するには、サーバーまたはロードバランサに証明書とそれに対応する秘密鍵を構成する必要があります。

TLS がクライアントとロードバランサ間の接続を保護する際、クライアントとロードバランサ間の通信は非公開のままになります。第三者も秘密鍵を持たない限り、第三者に読み取られることはありません。

このドキュメントでは、3 つの Google Cloud のロードバランサの SSL 証明書について説明します。

  • 外部 HTTPS 負荷分散
  • 内部 HTTPS 負荷分散
  • SSL プロキシ負荷分散

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

ロードバランサは TLS/SSL 証明書を使用して通信を保護し、クライアントに対するサーバーを認証します。

Google Cloud SSL 証明書リソースには、秘密鍵と SSL 証明書の両方が含まれ、ロードバランサのターゲット HTTPS プロキシまたはターゲット SSL プロキシに関連付けられます。

ターゲット プロキシは、ロードバランサのフロントエンドとバックエンド サービス(SSL プロキシ ロードバランサの場合)または URL マップ(HTTPS ロードバランサの場合)間の論理的な接続を表します

次の図は、ターゲット プロキシと関連付けられた 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 を使用する必要があります。

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

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

次のステップ