我们在 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。我们可以按照以下步骤实现此功能。
如果你没有安装URL Rewrite,我们可以从微软下载,你可以从google上找到链接,安装成功后,你就可以在IIS中看到URL Rewrite了。
本网站受以下两个协议的约束:443 80
配置 URL 重写。
两个图中的配置策略
我们测试它。
在 Azure VM 中,我们访问 http:// ,它将成功重定向到 https://。
现在,我们要注意在Azure中进行配置。
Web 服务器 NSG 规则。
对于输入规则,应该允许 80 和 443 访问。
负载平衡设置。
我认为我们应该设置两个负载平衡集,80和443。
也许应用网关也可以实现这个功能。