在验证证书请求者是否控制相应网域后,您可以使用公共证书授权机构 (CA) 预配和部署广泛受信任的 X.509 证书。借助公共 CA,您可以直接以编程方式请求已位于主要浏览器、操作系统和应用使用的受信任证书存储区根目录中的受大众信任的 TLS 证书。您可以使用这些 TLS 证书对互联网流量进行身份验证和加密。
借助公共 CA,您可以管理传统 CA 无法支持的高密钥用例。如果您是 Google Cloud 客户,可以直接向公共 CA 请求为您的网域颁发 TLS 证书。
大多数与证书相关的问题都是由人为错误或疏忽造成的,因此我们建议您自动化证书生命周期。公共 CA 使用自动证书管理环境 (ACME) 协议自动配置、续订和撤消证书。自动化证书管理可减少过期证书可能导致的服务中断时间,并最大限度地降低运营成本。
公有 CA 为多项服务提供 TLS 证书,例如 App Engine、Cloud Shell、Google Kubernetes Engine 和 Cloud 负载均衡。 Google Cloud
哪些人应使用公共 CA
您可以出于以下原因使用公共 CA:
- 如果您正在寻找具有广泛普及性、可扩缩性、安全性和可靠性的 TLS 提供商。
- 如果您希望从单个云服务提供商处获取基础架构(包括本地工作负载和跨云服务提供商设置)的大多数(如果不是全部)TLS 证书。
- 如果您需要对 TLS 证书管理进行控制和灵活调整,以便根据您的基础架构要求对其进行自定义。
- 如果您想自动管理 TLS 证书,但无法在 GKE 或 Cloud Load Balancing 等服务中使用托管证书。 Google Cloud
我们建议您仅在业务要求不允许使用其他选项时使用受众所信任的证书。鉴于维护公共密钥基础架构 (PKI) 层次结构的传统费用和复杂性,许多企业即使使用私有层次结构更为合理,也仍会使用公共 PKI 层次结构。
借助多个Google Cloud 产品,维护公共和私有层次结构变得更加简单。我们建议您根据自己的用例仔细选择合适的 PKI 类型。
对于非公共证书要求, Google Cloud 提供了两种易于管理的解决方案:
Anthos Service Mesh:Cloud Service Mesh 包含使用 Cloud Service Mesh 证书授权机构 (Cloud Service Mesh CA) 为在 GKE Enterprise 中运行的工作负载提供完全自动化的 mTLS 证书。
Certificate Authority Service:借助 Certificate Authority Service,您可以高效地部署、管理和保护自定义私有 CA,而无需管理基础架构。
公共 CA 的优势
使用公共 CA 具有以下优势:
自动化:由于互联网浏览器的目标是实现完全加密的流量并缩短证书有效期,因此使用已过期的 TLS 证书可能会有风险。证书过期可能会导致网站出现错误,并可能导致服务中断。公共 CA 可让您设置 HTTPS 服务器,以便自动从我们的 ACME 端点获取和续订所需的 TLS 证书,从而避免证书过期问题。
合规性:公共 CA 会定期接受严格的独立审核,以确保其安全性、隐私保护和合规控制措施符合要求。通过这些年度审核获得的 Webtrust 徽章证明了公共 CA 符合所有相关行业标准。
安全性:公共 CA 的架构和运维设计符合最高级别的安全标准,并定期运行独立评估,以确认底层基础架构的安全性。公共 CA 符合或超出了 Google 安全白皮书中提及的所有控制措施、操作做法和安全措施。
公共 CA 对安全性的关注延伸到了多视角域名验证等功能。公共 CA 的基础架构遍布全球。因此,公共 CA 需要在地理位置上具有高度一致性,以防范边界网关协议 (BGP) 盗用和域名服务器 (DNS) 盗用攻击。
可靠性:公共 CA 采用 Google 成熟的技术基础架构,因此是一项可用性高且可扩缩的服务。
普适性:Google Trust Services 在浏览器中的广泛普适性有助于确保使用公共 CA 颁发的证书的服务在尽可能广泛的设备和操作系统上运行。
针对混合设置的简化 TLS 解决方案:借助公共 CA,您可以构建自定义 TLS 证书解决方案,在各种场景和用例中使用相同的 CA。公有 CA 可有效满足在本地或跨云提供商环境中运行工作负载的用例。
规模:证书的获取成本通常很高,而且难以预配和维护。通过提供对大量证书的访问权限,公共 CA 让您能够以以前认为不切实际的方式使用和管理证书。
将公共 CA 与 Certificate Manager 搭配使用
如需使用 Certificate Manager 的公共 CA 功能,您必须熟悉以下概念:
ACME 客户端。自动证书管理环境 (ACME) 客户端是一种使用 ACME 协议的证书管理客户端。您的 ACME 客户端必须支持外部账号绑定 (EAB),才能与公共 CA 搭配使用。
外部账号绑定 (EAB)。您必须使用外部账号绑定将您在 Certificate Manager 公共 CA 中使用的每个 ACME 账号绑定到目标 Google Cloud 项目。为此,您必须使用与相应 Google Cloud 项目关联的密钥注册每个 ACME 账号。如需了解详情,请参阅外部账号绑定。
公共 CA 的挑战
当您使用公共 CA 请求证书时,Certificate Manager 会要求您证明您对证书中列出的域名的控制权。您可以通过解决验证问题来证明对网域的控制权。在您证明自己对目标网域拥有控制权后,公开 CA 会授权相应域名。
获得所需的授权后,您可以请求仅在特定时间段内有效的证书。在此期限结束后,您必须通过解决三种质询类型之一来重新验证域名,才能继续申请证书。
验证类型
公共 CA 支持以下类型的质询:
HTTP 质询。此质询涉及在 HTTP 服务器(端口 80)上的某个知名位置创建文件,以供公共 CA 检索和验证。如需了解详情,请参阅 HTTP 质询。
TLS-Application Layer Protocol Negotiation (ALPN) 质询。要求服务器在端口 443 上进行 TLS 协商期间提供特定证书,以证明对网域的控制权。如需了解详情,请参阅 ACME TLS-ALPN 质询延长。
DNS 质询。需要在指定位置添加特定 DNS 记录,以证明对网域的控制权。如需了解详情,请参阅 DNS 质询。
如果您使用 HTTP 质询或 TLS-ALPN 质询来验证域名,客户端只能请求将经过验证的域名包含在证书中。如果您使用 DNS 质询,客户端还可以请求将该域名的子网域包含在证书中。
例如,如果您使用 DNS 质询验证 *.myorg.example.com
,则通配符证书会自动涵盖 subdomain1.myorg.example.com
和 subdomain2.myorg.example.com
。不过,如果您使用 HTTP 或 TLS-ALPN 质询验证 myorg.example.com
,客户端只能请求在证书中添加 myorg.example.com
,并且您无法使用非 DNS 质询验证 *.myorg.example.com
。
质疑解决方案逻辑
公共 CA 质询逻辑如下:
- 公共 CA 提供随机令牌。
- 客户端会在明确定义的位置提供令牌。具体位置取决于相应挑战。
- 客户端向公共 CA 表明已准备好质询。
- 公共 CA 会检查预期位置存在的令牌是否与预期值匹配。
此流程完成后,域名将获得授权。客户端可以请求包含该域名的证书。您只需为每个域名解一个验证问题。
公共 CA 的限制
此版本的公共 CA 不支持 Punycode 网域。