3

我在我的应用服务前面配置了一个 Azure Web 应用程序防火墙,它成功地传递了请求。我已按照以下microsoft docs的说明进行操作。

我有以下配置:

自定义域:test.[customdomain].com DNS 记录指向针对 WAF 配置的公共 IP。自定义域也在 Web App 上配置。

WAF 有一个后端池,该后端池配置为使用“IP 地址或 FQDN”,记录如下:[customwebsite].azurewebsites.net

当我导航到 test.[customdomain].com 时,我成功接收了该网站,但是在转发到应用服务时似乎 WAF 正在重写请求。因此,我的应用服务接收到请求并且它具有 URL [customwebsite].azurewebsites.net,而不是 test.[customdomain].com。

这是故意的吗?查看多租户文档,默认情况下不应该重写主机吗?

4

2 回答 2

2

解决方案是确保在指定 New-AzureRmApplicationGatewayBackendHttpSettings 时使用选项 -PickHostNameFromBackendAddress。我应该注意到了,但是这个设置告诉 WAF 使用 BackendHttpSettings 中指定的地址重写。

然后,您还需要重新配置您的探针以指定手动主机名。例如,在设置 AzureRmApplicationGatewayProbeConfig 时不要指定 -PickHostNameFromBackendHttpSettings。

于 2018-07-28T04:19:45.903 回答
0

对我来说,有效的是在 HTTP 设置中确保未选择 -PickHostNameFromBackendAddress。此外,该界面不允许您设置 -HostName,因此请拖放到 PowerShell 并设置 -HostName 和探针,如下所示:

$GW = Get-AzureRmApplicationGateway -ResourceGroupName "MY-APP-WAF-RG" -Name "APP-WAF"

$PROBE = Get-AzureRmApplicationGatewayProbeConfig -ApplicationGateway $GW -Name "my-api-https-probe"

Set-AzureRmApplicationGatewayBackendHttpSettings -ApplicationGateway $GW -Probe $PROBE -HostName "my-api.example.org" -CookieBasedAffinity "enabled" -AffinityCookieName "AGAffinity" -Protocol "HTTPS" -Port 443 -Name "my-api-https-settings"

Set-AzureRmApplicationGateway -ApplicationGateway $GW

同样在探针上,我选择了 -PickHostNameFromBackendHttpSettings。

使用上述方式,我有两个 Web 应用程序,在 WAF 后面配置了自定义域和 SSL。

设置这个的可怕经历。

于 2018-10-21T16:36:06.867 回答