我正在将我的 ASP.Net 网站转换为 Azure 托管。我正在使用具有 SSL 卸载功能的应用程序网关,因此我的个人负载平衡 Web 服务器没有安装 SSL 证书。由于 SSL 在应用程序网关上处理,我如何要求客户端提供 SSL 并从 HTTP 重定向到 HTTPS?
2 回答
我使用通过 3 个独立的应用程序网关运行的近 300 个站点来执行此操作,一旦配置好它,它就会运行良好。
答案在于监听器/规则对的配置。
每个站点都需要两个侦听器(一个用于 HTTP,一个用于 HTTPS)和两个规则(一个用于 HTTP,一个用于 HTTPS)来实现此目的。
在这里,它为您逐步布置:
1. 创建一个新的 HTTP 侦听器:给它一个名称,如“Listener_HTTP”,端口 80,HTTP 协议,多站点侦听器类型,输入您的主机名,如下所示:
2.创建一个新的HTTPS监听器:名称'Listener_HTTPS,端口443,HTTPS协议,要么选择现有的,要么创建一个新的SSL证书,多站点监听器类型,输入你的主机名,如下所示:
3. 创建一个新的 HTTP 规则:创建一个新的规则,命名为“Rule_HTTP”。在“侦听器”选项卡上,将其链接到上面第 1 步中创建的 HTTP 侦听器,如下所示:
在“后端目标”选项卡上,目标类型应为“重定向”,重定向类型应为“找到”,重定向目标应为您在上述步骤 2 中创建的 HTTPS 侦听器,如下所示:
4. 创建一个新的 HTTPS 规则:创建一个新规则,名称为“Rule_HTTPS”,在“监听器”选项卡上将其指向在上面步骤 2 中创建的 HTTPS 监听器,如下所示:
在“后端目标”选项卡上,将目标类型设置为“后端池”并将其指向您选择的后端池和 HTTP 设置,如下所示(此答案假设您已经进行了这些设置):
瞧!你有它!任何直接访问 HTTPS 的请求都将直接进入后端池。任何命中 HTTP 的内容都会被循环回 HTTPS 侦听器,从而有效地实现您正在寻找的强制重定向。
不知道这是否有帮助。 https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-ssl-portal
如果您要迁移到 Web 应用程序而不是 vms,您可能需要配置端到端 ssl。