SSL 和 TLS 协议的 SSL 政策

SSL 政策指定 Google Cloud 负载均衡器在与客户端协商 SSL 时使用的一组 SSL 功能。在本文档中,术语“SSL”是指 SSL 和 TLS 协议。

以下负载均衡器支持全球 SSL 政策:

  • 全球外部应用负载均衡器
  • 传统应用负载均衡器
  • 跨区域内部应用负载均衡器
  • 全球外部代理网络负载均衡器
  • 传统代理网络负载均衡器

以下负载均衡器支持区域 SSL 政策:

  • 区域级外部应用负载均衡器
  • 区域级内部应用负载均衡器

默认情况下,这些负载均衡器使用一组可提供良好的安全性和广泛的兼容性的 SSL 功能。但某些应用需要更好地控制用于其 HTTPS 或 SSL 连接的 SSL 版本和加密方式。您可以定义 SSL 政策来指定负载均衡器在与客户端协商 SSL 时使用的一组 SSL 功能。

以下示例展示了如何在负载均衡器上建立和终止来自客户端的连接。

外部应用负载均衡器或外部代理网络负载均衡器中的客户端连接。
外部应用负载均衡器或外部代理网络负载均衡器中的客户端连接(点击可放大)。

您可以使用 SSL 政策来配置在负载均衡器中启用的最低 TLS 版本和 SSL 功能。SSL 政策会影响客户端与负载均衡器之间的连接(图中的连接 1)。SSL 政策不会影响负载均衡器和后端之间的连接(连接 2)。

定义 SSL 政策

要定义 SSL 政策,请指定最低 TLS 版本和配置文件。配置文件用于选择要在负载均衡器中启用的一组 SSL 功能。

您可以通过三个预配置的 Google 管理的配置文件来指定适合您应用的兼容级别,三个预配置的配置文件如下所示:

  • 兼容:可让数量最多的客户端(包括仅支持已过时的 SSL 功能的客户端)与负载均衡器协商 SSL。
  • 新型:支持大量 SSL 功能,允许使用新型客户端来协商 SSL。
  • 受限:支持的 SSL 功能较少,旨在满足更严格的合规要求。

可以使用第四个自定义配置文件来单独选择 SSL 功能。

此外,SSL 政策还指定了客户端可用于建立连接的最低 TLS 协议版本。配置文件也可以限制负载均衡器可以协商的 TLS 版本。例如,仅 TLS 1.2 支持在受限配置文件中启用的加密方式。无论选择的最低 TLS 版本如何,若要有效地选择受限配置文件,客户端都必须使用 TLS 1.2。

如果您未选择三个预配置的配置文件中的一个或创建了自定义 SSL 政策,则负载均衡器将使用默认 SSL 政策。默认 SSL 政策等同于使用兼容配置文件并将最低 TLS 版本指定为 TLS 1.0 的 SSL 政策。

您可以将 SSL 政策附加到多个目标代理。但是,您不能为特定目标代理配置多项 SSL 政策。对 SSL 政策所做的任何更改都不会更改或中断现有负载均衡器连接。

Cloud Load Balancing 不支持 SSL 3.0 或更低版本。下表介绍了针对每个 TLS/SSL 版本的功能支持。

TLS/SSL 版本 功能支持
TLS 1.0、1.1 或 1.2 SSL 政策中的设置,可控制应用于客户端连接的加密套件。
TLS 1.3 SSL 政策中的设置,不对加密方式的选择进行控制。TLS 1.3 仅支持 TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256 加密方式。
QUIC SSL 政策中的设置,不对加密方式的选择进行控制。
SSL 3.0 或更早版本 不适用。不受 Cloud Load Balancing 的支持。

在每次 TLS 握手期间,客户端会指明其支持的最高 TLS 协议版本。服务器必须选择客户端和服务器支持且服务器配置允许的最高协议版本。例如,如果负载均衡器配置了最低 TLS 版本 1.2,则使用支持 TLS 1.3 的现代客户端的握手选择 TLS 1.3。与仅支持 TLS 1.2 的较早客户端握手,该客户端使用 TLS 1.2。与仅支持 TLS 1.1 的更早版本的客户端握手将失败。

下表列出了每个预配置的配置文件的可用 SSL 政策功能。所有功能都控制是否可以使用特定的加密套件,并且仅适用于使用 TLS 1.2 或更低版本的客户端连接,而不适用于使用 QUIC 的客户端。

IANA 特征 在兼容配置文件中 在新型配置文件中 在受限配置文件中
0xCCA9 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
0xCCA8 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
0xC02B TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
0xC02F TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
0xC02C TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
0xC030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
0xC009 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
0xC013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
0xC00A TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
0xC014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
0x009C TLS_RSA_WITH_AES_128_GCM_SHA256
0x009D TLS_RSA_WITH_AES_256_GCM_SHA384
0x002F TLS_RSA_WITH_AES_128_CBC_SHA
0x0035 TLS_RSA_WITH_AES_256_CBC_SHA
0x000A TLS_RSA_WITH_3DES_EDE_CBC_SHA

功能更新

我们保留更新兼容、新型和受限配置文件中启用的一系列功能,以及可在自定义配置文件中配置的功能的权利。当我们移除对旧版 SSL 功能的支持,以及添加对新版功能的支持时,会进行此类更新。

当我们添加改进 SSL 功能的功能时,我们可能会选择在兼容、新型和受限配置文件中立即启用这些功能,以便选择这些配置文件的 SSL 政策能够利用这些新功能。但是,如果您的政策选择自定义配置文件,则必须修改政策的设置才能使用新增的功能。

我们会在移除可控制某项功能的功能(对所有政策强制开启或关闭此功能)时提前通知,除非出于安全原因必须移除该控制功能。

限制

  • 停用特定 SSL 版本或加密方式可能会导致某些较旧的客户端无法使用 HTTPS 或 SSL 连接您的代理。此外,停用自定义配置文件中大量可供选择的加密方式可能导致客户端无法协商 HTTPS。

  • 与负载均衡器关联的 SSL 证书使用 ECDSA 或 RSA 数字签名,而预定义的配置文件与这两种类型的证书签名兼容。自定义配置文件应启用与负载均衡器证书使用的数字签名兼容的加密方式。

  • 控制加密套件的功能仅适用于使用 TLS 1.2 及更早版本的客户端连接。这些功能不对使用 QUIC 或 TLS 1.3 的连接中的加密方式的选择进行控制。

后续步骤