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

已完成

已为 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 证书解密这些消息。 然后,它使用后端池中服务器的证书重新加密消息。