我基本上遇到了与Redirect HTTP to HTTPS in Azure Application Gateway所描述的相同的问题,但我正试图以不同的方式解决它。
当在AAG上打开http和https时,我的后端Web应用程序正常工作,但是当您单击webapp生成的链接到另一个页面时,发送回客户端的URL是http而不是https。显然,正确的解决方案是让Web应用程序意识到它是在反向代理之后并相应地生成链接。 在短期内,我一直在尝试使用IIS url重写模块:
a)使用入站规则,将传入的URL重写(不重定向)为https,这应该强制响应包含https URL(重定向导致infitite循环,因为AAG将所有内容转发到后端Web服务器作为http) 。我猜这是不可能的,因为它本质上在它自己之间建立了一个安全的通道。
b)使用出站规则,重写回复,使网址为https而不是http。事实证明这非常困难,因为我不了解我需要修改哪些部分的回复。我希望这种方法可行吗?
答案 0 :(得分:0)
对于没有经验的人,答案是在出站规则中使用自定义标签,该标签与包含需要修改的值的html元素匹配。
缺点当然是这意味着网络服务器必须进行模式匹配&除非您可以使用条件来限制范围,否则请替换它所服务的每个页面。与修复代码相比,它仍然非常低效,因此它可以识别代理!