SSL 证书概览

传输层安全协议 (TLS) 是 SSL 证书中用于保护网络通信的加密协议。

Google Cloud 使用 SSL 证书为客户端到负载平衡器提供隐私保护和安全性。要实现此目的,负载平衡器必须具有 SSL 证书和该证书的相应私钥。客户端和负载平衡器之间的通信将保持私密状态 - 任何没有此私钥的第三方都无法辨认。

负载平衡器

下表总结了需要 SSL 证书的 Google Cloud 负载平衡器的类型。

负载平衡器类型 从客户端到负载平衡器的协议
内部 HTTPS 负载平衡器 HTTPS 或 HTTP/2
外部 HTTPS 负载平衡器 HTTPS 或 HTTP/2
SSL 代理负载平衡器 SSL (TLS)

自行管理和 Google 管理的 SSL 证书

您可以自行获得自行管理的证书,也可以使用由 Google 管理的证书(由 Google 为您获得和管理)。

  • 自行管理的 SSL 证书是您自行获取、预配和续订的证书。此类型可以是以下任意一种:

    • 网域验证 (DV)
    • 组织验证 (OV)
    • 扩展验证 (EV) 证书

    如需了解详情,请参阅公钥证书

  • 由 Google 管理的 SSL 证书是 Google Cloud 为您的网域获取和管理的证书,此类证书可自动续订。由 Google 管理的证书是网域验证 (DV) 证书。这类证书不会显示与证书相关联的组织或个人的身份,也不支持通配符公用名。

对于外部 HTTP(S) 负载平衡器和 SSL 代理负载平衡器,您可以在一个目标代理上引用由 Google 管理的 SSL 证书、自行管理的 SSL 证书或者这两种 SSL 证书的组合。证书可以按任何顺序进行引用。对于内部 HTTP(S) 负载平衡器,您必须使用自行管理的证书。

如需了解如何为负载平衡器配置 SSL 证书,请参阅以下指南:

多个 SSL 证书

您最多可以配置每个目标 HTTPS 或目标 SSL 代理的 SSL 证书数量上限。当您使用同一个负载平衡器 IP 地址和端口从多个网域提供服务,并且想对每个网域使用不同的 SSL 证书时,请使用多个 SSL 证书。

如果您指定多个 SSL 证书,则 SSL 证书列表中的第一个证书将被视为与目标代理相关联的主要 SSL 证书。

当客户端发送请求时,负载平衡器使用客户端指定的 SNI 主机名来选择要在协商 SSL 连接时使用的证书。

只要可能,负载平衡器就会选择其公用名 (CN) 或主题备用名称 (SAN) 与客户端指定的 SNI 主机名相匹配的证书。RSA 和 ECDSA 是数字签名的类型,并且客户端软件必须能够使用它们。

如果无法选择任何可用证书,或者客户端未指定 SNI 主机名,则负载平衡器将使用主证书(即列表中的第一个证书)进行 SSL 协商。

多个 SSL 证书(点击可放大)
多个 SSL 证书(点击可放大)

从负载平衡器到后端的加密

对于 HTTP(S) 负载平衡、TCP 代理负载平衡和 SSL 代理负载平衡,Google 会自动对 Google Front End (GFE) 前端与 Google Cloud 中的后端之间的流量进行加密。

除了此网络级加密之外,您还可以使用安全协议(例如 SSL、HTTPS 或使用传输层安全协议 (TLS) 的 HTTP/2)作为基于 GFE 前端的负载平衡器以及内部 HTTP(S) 负载平衡和 Traffic Director 的后端服务协议。

当负载平衡器使用安全后端服务协议连接到后端时,负载平衡器即为 SSL 或 HTTPS 客户端。同样,当使用 Traffic Director 配置的客户端代理使用安全后端服务协议连接到您的后端时,该代理即为 SSL 或 HTTPS 客户端。

在以下情况下,建议使用安全协议连接到后端实例:

  • 如果您需要建立从负载平衡器(或 Traffic Director)到后端实例的可审核加密连接。

  • 如果负载平衡器(通过互联网 NEG)连接到 Google Cloud 外部的后端实例。与互联网 NEG 后端的通信可能会传输到公共互联网。当负载平衡器连接到互联网 NEG 时,证书必须由公共证书授权机构签名并满足验证要求

如需在负载平衡器和后端之间使用安全协议,请注意以下要求:

  • 您必须将负载平衡器的后端服务配置为使用 SSL (TLS)、HTTPS 或 HTTP/2 协议。

  • 在后端实例上,您必须将软件配置为使用后端服务所用的协议来处理流量。例如,如果后端服务使用 HTTPS,请务必将后端实例配置为使用 HTTPS。如果您使用 HTTP/2 协议,则后端必须使用 TLS。如需了解配置说明,请参阅后端实例的软件文档。

  • 您必须在后端实例上安装私钥和证书。这些证书不需要与负载平衡器的 SSL 证书匹配。如需了解安装说明,请参阅后端实例的软件文档。

  • 您必须将后端实例上运行的软件配置为以 SSL 或 HTTPS 服务器的形式运行。如需了解配置说明,请参阅后端实例的软件文档。

另请注意以下事项:

  • 当负载平衡器启动与后端的 TLS 会话时,GFE 前端不会使用服务器名称指示 (SNI) 扩展程序。

  • 当负载平衡器连接到 Google Cloud 中的后端时,负载平衡器会接受您的后端提供的任何证书。负载平衡器不执行证书验证。例如,即使在下列情况下,证书也被视为有效:

    • 该证书是自签名证书。
    • 该证书由未知证书授权机构 (CA) 签名。
    • 该证书已过期或尚未生效。
    • CNsubjectAlternativeName 特性 (Attribute) 与 Host 标头或 DNS PTR 记录不匹配。

如需详细了解 Google 的加密,请参阅 Google Cloud 中的传输加密

负载平衡器、SSL 证书和目标代理

Google Cloud SSL 证书资源同时包含私钥和 SSL 证书本身。

目标代理表示负载平衡器的前端服务与其后端服务(针对 SSL 代理负载平衡器)或网址映射(针对 HTTPS 负载平衡器)之间的逻辑连接。

下图展示了目标代理及其关联的 SSL 证书如何适应负载平衡架构。

目标代理、SSL 证书和其他负载平衡器组件(点击可放大)
目标代理、SSL 证书和其他负载平衡器组件(点击可放大)

SSL 证书范围

Google Cloud 有两种 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 管理的每个证书都支持有限数量的网域。 如需了解详情,请参阅由 Google 管理的每个 SSL 证书的网域数量限制

  • 如果您将由 Google 管理的证书用于 SSL 代理负载平衡,则负载平衡器的转发规则必须使用 TCP 端口 443,这样由 Google 管理的证书才能自动续订。

  • Google Cloud 负载平衡器不支持基于客户端证书的身份验证(双向 TLS,也就是 mTLS)。

  • 由 Google 管理的 SSL 证书不支持使用通配符。

后续步骤