为加密配置后端池

已完成

后端池包含实现应用程序的服务器。 Azure 应用程序网关将请求路由到这些服务器,并且可以对这些服务器之间的流量进行负载均衡。

在传送门户中,后端池中的应用程序服务器必须使用 SSL 加密在应用程序网关和后端池中的服务器之间传递的数据。 应用程序网关使用带有公钥的 SSL 证书来加密数据。 服务器使用相应的私钥来解密收到的数据。 在本单元中,你将了解如何创建后端池并在应用程序网关中安装必要的证书。 这些证书有助于保护发送到后端池和从后端池中发出的消息。

从应用程序网关到后端池的加密

后端池可以引用单个虚拟机、虚拟机规模集、实际计算机(本地或远程运行的)的 IP 地址或者通过 Azure 应用服务托管的服务。 应以同样的方式配置后端池中的所有服务器(包括其安全设置)。

Diagram showing how Application Gateway routes a request to a web server.

如果通过 SSL 保护定向到后端池的流量,则后端池中的每个服务器都必须提供适当的证书。 出于测试目的,可创建自签名证书。 在生产环境中,应始终生成或购买证书颁发机构 (CA) 可进行身份验证的证书。

目前有两个版本的应用程序网关:v1 和 v2。 这两种版本功能相似,但实现的细节略有不同。 v2 版本提供了更多功能和性能改进。

应用程序网关 v1 中的证书配置

应用程序网关 v1 要求在网关配置中为服务器安装身份验证证书。 此证书包含应用程序网关用于加密消息和对服务器进行身份验证的公钥。 从服务器导出该证书,即可创建该证书。 应用程序服务器使用相应的私钥来解密这些消息。 此私钥应仅存储在应用程序服务器上。

可使用来自 Azure CLI 的 az network application-gateway auth-cert create 命令将身份验证证书添加到应用程序网关。 以下示例说明此命令的语法。 证书应采用 CER(声明、证据和推理)格式。

az network application-gateway auth-cert create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <certificate name> \
    --cert-file <path to authentication certificate>

应用程序网关提供其他可用于列出和管理身份验证证书的命令。 例如:

  • az network application-gateway auth-cert list 命令显示已安装的证书。
  • 可使用 az network application-gateway auth-cert update 命令更改证书。
  • az network application-gateway auth-cert delete 命令删除证书。

应用程序网关 v2 中的证书配置

应用程序网关 v2 的身份验证要求略有不同。 为已验证后端池中服务器的 SSL 证书的证书颁发机构提供证书。 将此证书作为受信任的根证书添加到应用程序网关。 使用 Azure CLI 中的 az network application-gateway root-cert create 命令。

az network application-gateway root-cert create \
      --resource-group <resource group name> \
      --gateway-name <application gateway name> \
      --name <certificate name> \
      --cert-file <path to trusted CA certificate>

如果服务器使用自签名证书,请将此证书添加为应用程序网关中受信任的根证书。

HTTP 设置

应用程序网关使用规则来指定如何将在传入端口上接收的消息定向到后端池中的服务器。 如果服务器使用的是 SSL,则必须配置规则来指示:

  • 服务器期望通过 HTTPS 协议来传输流量。
  • 要用于加密流量和验证与服务器的连接的证书。

使用 HTTP 设置定义此配置信息。

可使用 Azure CLI 中的 az network application-gateway http-settings create 命令定义 HTTP 设置。 以下示例显示的语法的作用是:创建一个使用 HTTPS 协议将流量路由到后端池中服务器的 443 端口的设置。 如果使用的是应用程序网关 v1,--auth-certs 参数就是你以前添加到应用程序网关的身份验证证书的名称。

az network application-gateway http-settings create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <HTTPS settings name> \
    --port 443 \
    --protocol Https \
    --auth-certs <certificate name>

如果使用的是应用程序网关 v2,请省略 --auth-certs 参数。 应用程序网关与后端服务器联系。 该网关根据其受信任的根证书列表指定的证书颁发机构,验证服务器提供的证书的真实性。 如果没有匹配项,应用程序网关将无法连接到后端服务器,并将出现 HTTP 502(错误的网关)错误。