Transport Layer Security(TLS)は、ネットワーク通信を保護するために SSL 証明書で使用される暗号化プロトコルです。
Google Cloud は SSL 証明書を使用して、クライアントからロードバランサに転送されるデータのプライバシーとセキュリティを保護します。これを実現するには、ロードバランサに SSL 証明書と証明書の対応する秘密鍵が必要です。クライアントとロードバランサ間の通信は公開されず、この秘密鍵を持たない第三者に読み取られることはありません。
ロードバランサ
次の表に、SSL 証明書を必要とする Google Cloud ロードバランサの種類を示します。
ロードバランサの種類 | クライアントからロードバランサへのプロトコル |
---|---|
内部 HTTPS ロードバランサ | HTTPS または HTTP/2 |
外部 HTTPS ロードバランサ | HTTPS または HTTP/2 |
SSL プロキシ ロードバランサ | SSL(TLS) |
セルフマネージド SSL 証明書と Google マネージド SSL 証明書
独自のセルフマネージド証明書を取得するか、Google が取得して管理する Google マネージド証明書を使用できます。
セルフマネージド SSL 証明書は、ご自分で取得、プロビジョニング、更新する証明書です。この種類は次のいずれかになります。
- ドメイン認証(DV)
- 組織認証(OV)
- 拡張認証(EV)証明書
詳細については、公開鍵証明書をご覧ください。
Google マネージド SSL 証明書は、ドメイン用に Google Cloud が取得して管理する証明書で、自動的に更新されます。Google マネージド証明書はドメイン認証(DV)証明書です。証明書に関連付けられた組織や個人の ID を証明せず、ワイルドカードの共通名をサポートしません。
外部 HTTP(S) ロードバランサと SSL プロキシ ロードバランサの場合、Google マネージド、セルフマネージド、または両方の種類の組み合わせの SSL 証明書を 1 つのターゲット プロキシで参照できます。証明書は任意の順序で参照できます。内部 HTTP(S) ロードバランサの場合、セルフマネージド証明書を使用する必要があります。
ロードバランサの SSL 証明書の構成については、次のガイドをご覧ください。
複数の SSL 証明書
ターゲット HTTPS またはターゲット SSL プロキシあたりの SSL 証明書の最大数を構成できます。同じロードバランサの IP アドレスとポートを使用して複数のドメインからサービスを提供し、ドメインごとに異なる SSL 証明書を使用する場合は、複数の SSL 証明書を使用します。
複数の証明書を指定した場合、SSL 証明書のリストの最初の証明書が、ターゲット プロキシに関連付けられたプライマリ SSL 証明書と見なされます。
クライアントがリクエストを送信すると、ロードバランサはクライアントが指定した SNI ホスト名を使用して、SSL 接続のネゴシエーションに使用する証明書を選択します。
可能な限り、ロードバランサは、クライアントが指定した SNI ホスト名と共通名(CN)またはサブジェクト代替名(SAN)が一致する証明書を選択します。RSA と ECDSA はデジタル署名の一種であり、クライアント ソフトウェアでそれらを使用できる必要があります。
使用可能な証明書のいずれも選択できない場合、またはクライアントが SNI ホスト名を指定していない場合、ロードバランサはプライマリ証明書(リストの最初の証明書)を使用して SSL をネゴシエートします。
ロードバランサからバックエンドへの暗号化
このトピックの詳細については、バックエンドへの暗号化をご覧ください。
ロードバランサ、SSL 証明書、ターゲット プロキシ
Google Cloud SSL 証明書のリソースには、秘密鍵と SSL 証明書の両方が格納されています。
ターゲット プロキシは、ロードバランサのフロントエンドとバックエンド サービス(SSL プロキシ ロードバランサの場合)または URL マップ(HTTPS ロードバランサの場合)間の論理的な接続を表します
次の図は、ターゲット プロキシと関連付けられた SSL 証明書の負荷分散アーキテクチャにおける位置付けを示しています。
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 証明書の数には上限があります。詳細については、ターゲット HTTPS またはターゲット SSL プロキシあたりの SSL 証明書の上限をご覧ください。
各マネージド証明書でサポートされるドメインの数には上限があります。詳細については、Google マネージド SSL 証明書あたりのドメイン数の制限をご覧ください。
Google マネージド証明書を SSL プロキシの負荷分散に使用する場合、Google マネージド証明書の自動更新を行うには、ロードバランサの転送ルールが TCP ポート 443 を使用する必要があります。
Google Cloud ロードバランサは、クライアント証明書ベースの認証(相互 TLS、mTLS)をサポートしていません。
Google マネージド SSL 証明書では、ワイルドカードの使用はサポートされません。
次のステップ
- SSL 証明書を Kubernetes Engine で使用する。Ingress での HTTP(S) 負荷分散をご覧ください。
- 秘密鍵のサポートされる鍵の長さを確認する。負荷分散の割り当てページをご覧ください。
- Google がユーザー トラフィックを暗号化する方法を学習する。Google Cloud での転送データの暗号化に関するホワイト ペーパーをご覧ください。
- Google マネージド証明書とセルフマネージド証明書に関する問題のトラブルシューティング方法を学習する。SSL 証明書のトラブルシューティングをご覧ください。