配置用于加密的后端池

已完成

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

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

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

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

显示应用程序网关如何将请求路由到 Web 服务器的关系图。

如果定向到后端池的流量通过 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 。 应用程序网关会联系后端服务器。 它验证服务器提供的证书的真实性,并将其与一份受信任的根证书列表中指定的 CA 进行对照。 如果没有匹配项,应用程序网关将不会连接到后端服务器,并且会失败并出现 HTTP 502(网关错误)错误。