SSL 证书概览

SSL/TLS 是互联网上使用最广泛的加密协议。从技术上讲,TLS 是 SSL 的后继技术,但这两个术语有时可以互换使用,本文档中就是如此。

传输层安全协议 (TLS) 用于对通过网络发送的信息进行加密,从而在客户端与服务器或负载均衡器之间提供隐私权。使用 SSL 的应用负载均衡器或代理网络负载均衡器需要至少一个私钥和 SSL 证书。

证书配置方法

对于使用目标 HTTPS 代理的应用负载均衡器,负载均衡器的目标代理必须引用 1 到 15 个 Compute Engine SSL 证书。每个 Compute Engine SSL 证书资源都包含私钥、相应的证书和(可选)CA 证书。

负载均衡器支持

下表列出了每个负载均衡器支持的证书配置方法。

负载均衡器 证书配置方法:目标代理引用...
Compute Engine SSL 证书 Certificate Manager 证书映射 直接使用 Certificate Manager 证书
应用负载均衡器(目标 HTTPS 代理)
区域级外部应用负载均衡器 支持区域证书
自行管理
Google 管理
自行管理
Google 管理
区域级内部应用负载均衡器 支持区域证书
自行管理
Google 管理
自行管理
Google 管理

证书类型

您可以为负载均衡器创建自行管理的 SSL 证书。

自行管理的 SSL 证书

自行管理的 SSL 证书是您自行获取、预配和续订的证书。自行管理的证书可以是以下任何公钥证书类型:

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

您可以使用 Compute Engine SSL 证书资源创建自行管理的 SSL 证书。如需了解详情,请参阅使用自行管理的 SSL 证书

多个 SSL 证书

应用负载均衡器的目标代理最多可引用 15 个 Compute Engine SSL 证书。第一个引用的 Compute Engine SSL 证书资源是目标代理的默认(主要)证书。

如需了解详情,请参阅负载均衡文档中的目标代理SSL 证书

证书选择流程

以下证书选择流程适用于目标代理引用多个 Compute Engine SSL 证书的负载均衡器。

客户端连接到负载均衡器后,客户端和负载均衡器会协商 TLS 会话。在 TLS 会话协商期间,客户端向负载均衡器发送其支持的 TLS 加密列表(在 ClientHello 中)。负载均衡器选择其公钥算法与客户端兼容的证书。作为此协商的一部分,客户端还可以向负载均衡器发送服务器名称指示 (SNI) 主机名。SNI 主机名数据有时用于帮助负载均衡器选择应发送到客户端的证书。

  • 如果负载均衡器的目标代理仅引用一个证书,则会使用该证书,而客户端发送的 SNI 主机名的值则无关紧要。

  • 如果负载均衡器的目标代理引用两个或更多证书,负载均衡器会使用以下流程来选择一个证书:

    • 如果客户端未在其 ClientHello 中发送任何 SNI 主机名,则负载均衡器会使用其证书列表中的第一个证书。

    • 如果客户端发送的 SNI 主机名与任何证书通用名称 (CN) 不匹配,且与任何证书主题备用名称 (SAN) 都不匹配,则负载均衡器使用其证书列表中的第一个证书。

    • 在其他所有情况下:负载均衡器会使用以下匹配流程选择证书:

      • 通过通用名称 (CN) 和主题备用名称 (SAN) 证书特性的最长后缀完成匹配,优先选择 ECDSA 证书而非 RSA 证书。

      • 为了说明匹配的方法,设想目标代理引用以下两个证书:

        • 证书 A

          • CN: cats.pets.example.com
          • SAN: cats.pets.example.com, *.pets.example.com, *.example.com
        • 证书 B

          • CN: dogs.pets.example.com
          • SAN: dogs.pets.example.com, *.pets.example.com, *.example.com
      • 现在,请考虑以下几种情况:

        • 如果客户端发送的 SNI 主机名为 cats.pets.example.com,则负载均衡器使用证书 A。
        • 如果客户端发送的 SNI 主机名为 ferrets.pets.example.com,则没有完全匹配的证书,因此负载均衡器会选择证书 A 或证书 B,因为它们的 SAN 列表中都包含 *.pets.example.com在这种情况下,您无法控制系统选择哪个证书。
  • 选择证书后,只有当所选证书使用与客户端在 ClientHello 中发送的加密算法兼容的公钥算法时,负载均衡器才会向客户端发送该证书。如果客户端不支持包含负载均衡器所选证书的公钥算法(ECDSA 或 RSA)的加密套件,则 TLS 协商会失败。

后续步骤