0

我基本上有与这里描述的相同的问题Redirect HTTP to HTTPS in Azure Application Gateway但我试图以不同的方式解决它。

当在 AAG 上打开 http 和 https 时,我的后端 web 应用程序工作正常,但是当您单击 webapp 生成的指向另一个页面的链接时,发送回客户端的 url 是用于 http 而不是 https。显然,正确的解决方案是让 Web 应用程序知道它位于反向代理后面并相应地生成链接。在短期内,我一直在尝试使用 IIS url 重写模块,但失败了:

a) 使用入站规则,将传入 URL 重写(而不是重定向)为 https,这应该强制响应包含 https url(重定向会导致无限循环,因为 AAG 将所有内容作为 http 转发到后端 Web 服务器)。我猜这是不可能的,因为它本质上是在自身之间创建一个安全通道。

b) 使用出站规则,重写响应,使 URL 为 https 而不是 http。事实证明这非常困难,因为我不明白我需要修改响应的哪些部分。我希望这种方法可行吗?

4

1 回答 1

1

对于初学者来说,答案是在出站规则中使用自定义标签,它匹配包含需要修改的值的 html 元素。

缺点当然是这意味着 Web 服务器必须在它所服务的每个页面上进行模式匹配和替换,除非您可以使用条件来限制范围。与修复代码相比仍然非常低效,因此它是代理感知的!

于 2016-04-29T14:01:55.830 回答