在 Azure 中将 HTTP 重定向到 HTTPS(使用负载均衡器)

在 Azure 中将 HTTP 重定向到 HTTPS(使用负载均衡器)

我们在 Azure 中有 2 个负载平衡的 Web 服务器。我们刚刚在这些 Azure 网站中安装了 SSL 以将其转换为 HTTPS。

现在我们希望任何以 HTTP 传入的请求都应更改/重定向到 HTTPS 连接。

因此,为了进行测试,我在本地计算机上创建了一个已发布的网站,然后添加了自签名 SSL 证书以获取安全的网站。然后我使用 URL 重写将我的 HTTP 网站定向到 HTTPS。我在 Web.config 中使用了它。

这在我本地发布的网站上完美运行。

但这在 Azure 服务器上失败并出现内部服务器错误。

有任何想法吗?

我在 Web.config 中使用了以下内容进行 URL 重写

<rewrite>
<rules>     
    <rule name="HTTP to HTTPS redirect" stopProcessing="true">
        <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="Off" />
                <add input="{REQUEST_METHOD}" pattern="^get$|^head$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="SeeOther" />
    </rule>         
</rules>

答案1

我认为我们可以使用URL Rewrite将HTTP重定向到HTTPS。我们可以按照以下步骤实现此功能。

  1. 如果你没有安装URL Rewrite,我们可以从微软下载,你可以从google上找到链接,安装成功后,你就可以在IIS中看到URL Rewrite了。

  2. 本网站受以下两个协议的约束:443 80

  3. 配置 URL 重写。

    在此处输入图片描述

    在此处输入图片描述

    两个图中的配置策略

  4. 我们测试它。

    在 Azure VM 中,我们访问 http:// ,它将成功重定向到 https://。

现在,我们要注意在Azure中进行配置。

  1. Web 服务器 NSG 规则

    对于输入规则,应该允许 80 和 443 访问。

  2. 负载平衡设置。

    我认为我们应该设置两个负载平衡集,80和443。

也许应用网关也可以实现这个功能。

相关内容