Mar*_*ark 2 azure-web-app-service
创建到应用服务的 HTTP 自定义域后,如何防止 Azure 应用服务从 HTTP 重定向到 HTTPS?
仅 HTTPS 已禁用 身份验证已按照如何删除 Azure SSL 绑定?
背景:应用程序服务前面有一个处理所有 HTTPS 流量的应用程序网关。应用服务重写标头和 Set-Cookie。根据https://learn.microsoft.com/en-us/azure/application-gateway/rewrite-http-headers存在一个错误/限制:“如果响应有多个同名标头,则重写这些标头之一的值将导致丢弃响应中的其他标头。这种情况通常会发生在 Set-Cookie 标头中,因为响应中可以有多个 Set-Cookie 标头。” 我们受到这个限制的阻碍。这意味着我们无法使用此处描述的第一个解决方法: https: //learn.microsoft.com/en-us/azure/application-gateway/troubleshoot-app-service-redirection-app-service-url “解决方案:重写位置标题”。我们被迫使用第二种解决方案,它本质上是将流量传递到后端应用程序服务,如“替代解决方案:使用自定义域名”中所述。这些示例都使用 HTTP 作为后端。我们确实尝试过使用 HTTPS 作为后端,但这需要部署(我们使用 Azure Devops)将证书推送到应用程序服务以及应用程序网关,这对于一个简单的需求来说似乎需要付出很大的努力 - 特别是因为所有 Microsoft 示例都在后端使用 HTTP(如果有应用程序网关保护它)。
在应用程序网关能够正确处理多个 Set-Cookie 重写之前,这只是权宜之计。
除了在应用服务中禁用强制 HTTPS 之外,还需要做第二件事:
app.UseHttpsRedirection(); 已在 Startup.cs 文件中设置。
这会强制代码中的重定向与应用服务设置无关。注释掉它禁用了重定向,解决了问题。
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |