你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

具有 Azure Front Door 的端到端 TLS

传输层安全性 (TLS)(前称为安全套接字层 (SSL))是用于在 Web 服务器与浏览器之间建立加密链接的标准安全技术。 该链接可确保在 Web 服务器和网络浏览器之间传递的所有数据都会得到保密和加密。

为了满足你的安全性或合规性要求,Azure Front Door (AFD) 支持端到端 TLS 加密。 Front Door TLS/SSL 卸载会终止 TLS 连接,解密 Azure Front Door 的流量,并在将流量转发到后端之前对其进行重新加密。 由于与后端的连接是通过公共 IP 进行,因此强烈建议在 Azure Front Door 上将 HTTPS 配置为转发协议,以便强制实施从客户端到后端的端到端 TLS 加密。 如果使用 PrivateLink 功能部署 AFD Premium 的专用后端,则也支持 TLS/SSL 卸载。

端到端 TLS 加密

端到端 TLS 允许在传输到后端时保护敏感数据,同时受益于全局负载均衡和缓存等 Azure Front Door 功能。 某些功能还包括基于 URL 的路由、TCP 拆分、距离客户端最近边缘位置上的缓存及在边缘自定义 HTTP 请求。

Azure Front Door 会在边缘卸载 TLS 会话,并对客户端请求进行解密。 然后,它会应用配置的传递规则,以便将请求路由到后端池中的相应后端。 接着,Azure Front Door 会在请求传输到后端之前重新开始与后端的 TLS 连接,并使用后端证书对所有数据进行重新加密。 来自后端的任何响应都会经历相同的加密过程返回最终用户。 你可以将 Azure Front Door 配置为使用 HTTPS 作为转发协议,以启用端到端 TLS。

支持的 TLS 版本

Azure Front Door 支持三种 TLS 协议版本:TLS 版本 1.0、1.1 和 1.2。 2019 年 9 月之后创建的所有 Azure Front Door 配置文件均使用 TLS 1.2 作为默认最小值,但为保证后向兼容性,仍支持 TLS 1.0 和 TLS 1.1。

尽管 Azure Front Door 支持 RFC 5246 中的 TLS 1.2(引入了客户端/相互身份验证),但目前 Azure Front Door 并不支持客户端/相互身份验证。

可以使用 Azure 门户或Azure REST API 在自定义域 HTTPS 设置中配置 Azure Front Door 中的最低 TLS 版本。 目前可以在 1.0 和 1.2 之间进行选择。 因此,将 TLS 1.2 指定为最低版本会控制 Azure Front Door 将从客户端接受的最低可接受 TLS 版本。 当 Azure Front Door 启动到后端的 TLS 流量时,它将尝试协商后端能够可靠且始终接受的最佳 TLS 版本。

支持的证书

创建 TLS/SSL 证书时,必须使用 Microsoft 受信任 CA 列表中允许的证书颁发机构 (CA) 创建完整的证书链。 如果使用不允许的 CA,请求会被拒绝。

不允许来自内部 CA 的证书或自签名证书。

联机证书状态协议 (OCSP) 装订

默认情况下,Azure Front Door 中支持 OCSP 装订且无需经过任何配置。

后端 TLS 连接(Azure Front Door 到后端)

对于 HTTPS 连接,Azure Front Door 预期后端会出示来自有效证书颁发机构 (CA) 的证书,该证书中的使用者名称与后端主机名匹配。 例如,如果后端主机名设置为 myapp-centralus.contosonews.net 并且后端在 TLS 握手期间出示的证书的使用者名称中既没有 myapp-centralus.contosonews.net 也没有 *.contosonews.net,则 Azure Front Door 将拒绝连接并导致错误。

注意

证书必须有包括叶证书和中间证书的完整证书链。 根 CA 必须是 Microsoft 受信任的 CA 列表的一部分。 如果提供的是没有完整链的证书,则不能保证涉及该证书的请求实现预期效果。

从安全角度来看,Microsoft 不建议禁用证书使用者名称检查。 在某些用例(例如用于测试的用例)中,要解决 HTTPS 连接失败问题,可以对 Azure Front Door 禁用证书使用者名称检查。 请注意,源仍然需要提供具有有效受信任链的证书,但不必与源主机名匹配。 为每个 Azure Front Door 层级禁用此功能的选项不同:

  • Azure Front Door 标准版和高级版 - 禁用选项位于源设置中。
  • Azure Front Door(经典)- 禁用选项位于 Azure 门户的 Azure Front Door 设置中及 Azure Front Door API 的 BackendPoolsSettings 中。

前端 TLS 连接(客户端到 Front Door)

要启用 HTTPS 协议以在 Azure Front Door 自定义域上安全地传递内容,可以选择使用由 Azure Front Door 托管的证书,或使用自己的证书。

  • Azure Front Door 托管的证书通过 DigiCert 提供标准 TLS/SSL 证书,并存储在 Azure Front Door 的密钥保管库中。

  • 如果你选择使用自己的证书,则可以从支持的 CA 加入证书,该证书可以是标准 TLS、扩展的验证证书,甚至通配符证书。

  • 不支持自签名证书。 了解如何为自定义域启用 HTTPS

证书自动轮换

对于 Azure Front Door 托管证书选项,将在距离到期时间的 90 天内由 Azure Front Door 托管和自动轮换证书。 对于 Azure Front Door 标准/高级托管证书选项,将在距离到期时间的 45 天内由 Azure Front Door 托管和自动轮换证书。 如果你使用 Azure Front Door 托管证书并发现距离证书到期日期不到 60 天(对于标准/高级 SKU 为 30 天),请提交支持票证。

对于自定义的 TLS/SSL 证书:

  1. 请将机密版本设置为“最新”,以便在密钥保管库中有更新版本的证书可用时,自动将证书轮换为最新版本。 对于自定义证书,无论证书到期时间为何时,将在 1-2 天内自动轮换为更新版本的证书。

  2. 如果选择了特定版本,则不支持自动轮换。 你必须手动重新选择新版本才能轮换证书。 部署新版本的证书/机密最多需要 24 小时。

    你需要确保 Front Door 的服务主体有权访问密钥保管库。 请参阅如何授予对密钥保管库的访问权限。 只要证书的使用者名称或使用者替代名称 (SAN) 不更改,Azure Front Door 执行的这项已更新证书推出操作就不会在生产过程中造成任何停机时间。

支持的密码套件

对于 TLS1.2,支持的加密套件如下:

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

注意

对于 Windows 10 及更高版本,建议启用一个或全部两个 ECDHE 加密套件来增强安全性。 Windows 8.1、8 和 7 版本与这些 ECDHE 加密套件不兼容。 提供 DHE 加密套件是为了与这些操作系统兼容。

在启用 TLS1.0/1.1 的情况下使用自定义域时,支持以下加密套件:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

Azure Front Door 不支持配置特定的加密套件。 可以从证书颁发机构(例如 Verisign、Entrust 或 DigiCert)获取自己的自定义 TLS/SSL 证书。 然后在生成证书时,在证书中标记特定的加密套件。

后续步骤