为加密配置应用程序网关侦听器

已完成

你已经为 Azure 应用程序网关和后端池中的服务器之间的连接配置了 SSL。 对于传送门户,你需要完整的端到端加密。 若要执行此加密,还需要加密客户端发送到应用程序网关的消息。

创建前端端口

应用程序网关通过一个或多个端口接收请求。 如果通过 HTTPS 与网关通信,则应配置一个 SSL 端口。 HTTPS 通常使用 443 端口。 使用 az network application-gateway frontend-port create 命令创建新的前端端口。 以下示例显示如何为 443 端口创建前端端口:

az network application-gateway frontend-port create \
    --resource-group $rgName \
    --gateway-name gw-shipping  \
    --name my-https-port \
    --port 443

配置侦听器

侦听器等待进入指定前端端口上的网关的传入流量。 再将该流量路由到后端池中的服务器。 如果前端端口使用 SSL,则需要指示用于解密传入消息的证书。 该证书包含私钥。

可以使用 az network application-gateway ssl-cert create 命令添加证书。 证书文件应为 PFX 格式。 由于此文件包含私钥,它也可能受密码保护。 在 cert-password 参数中提供密码,如下例所示。

az network application-gateway ssl-cert create \
   --resource-group $rgName \
   --gateway-name gw-shipping \
   --name shipping-ssl.crt \
   --cert-file shippingportal/server-config/shipping-ssl.pfx \
   --cert-password <password for certificate file>

然后,你可以创建从前端端口接收请求的侦听器,并使用此证书对这些请求进行解密。 使用 az network application-gateway http-listener create 命令。

az network application-gateway http-listener create \
    --resource-group $rgName \
    --gateway-name gw-shipping \
    --name http-listener \
    --frontend-port my-https-port \
    --ssl-cert shipping-ssl.crt

定义向服务器发送 HTTPS 请求的规则

最后一步是创建规则,将通过侦听器收到的消息定向到后端池中的服务器。 通过为侦听器指定的 SSL 证书解密从前端端口接收的消息。 需使用后端池中服务器的客户端证书对这些消息重新加密。 在规则中定义此信息。

下面的示例演示如何使用 az network application-gateway rule create 命令创建将侦听器连接到后端池的规则。 --http-settings 参数指定了引用服务器的客户端证书的 HTTP 设置。 你在上一单元中创建了这些设置。

az network application-gateway rule create \
    --resource-group $rgName \
    --gateway-name gw-shipping \
    --name app-gw-rule \
    --address-pool ap-backend \
    --http-listener http-listener \
    --http-settings https-settings \
    --rule-type Basic
    --priority 101

现在,你已对通过应用程序网关路由的消息进行了完整的端到端加密。 客户端使用应用程序网关的 SSL 证书发送消息。 应用程序网关使用此 SSL 证书解密这些消息。 然后,它使用后端池中服务器的证书对这些消息重新加密。