在azure上的asp.net vnext网站上禁用端口80
我有一种感觉,这应该很容易,但我正在努力找到如何做到这一点 我有一个网站,我想限制为HTTPS。它是部署到Azure的asp.net vnext网站(不是mvc)。它提供静态文件,而无需通过ASP.NET管道 在以前版本的asp.net中,可以添加system.webServer规则来执行重定向。这是从vNext中删除的。如果我使用的是Mvc,我可以使用RequireHttps属性,或者我可以编写自定义中间件来执行重定向,但这只在asp.net管道被激活时生效。我的html和js(这是一个SPA应用程序)仍然可以使用。如果我部署到IIS而不是Azure,我可以在那里配置它在azure上的asp.net vnext网站上禁用端口80,asp.net,azure,ssl,https,asp.net-core,Asp.net,Azure,Ssl,Https,Asp.net Core,我有一种感觉,这应该很容易,但我正在努力找到如何做到这一点 我有一个网站,我想限制为HTTPS。它是部署到Azure的asp.net vnext网站(不是mvc)。它提供静态文件,而无需通过ASP.NET管道 在以前版本的asp.net中,可以添加system.webServer规则来执行重定向。这是从vNext中删除的。如果我使用的是Mvc,我可以使用RequireHttps属性,或者我可以编写自定义中间件来执行重定向,但这只在asp.net管道被激活时生效。我的html和js(这是一个SPA
那么,我如何告诉azure网站只在端口443上响应而不使用web配置文件呢?根据azure文档,您可以为用azure支持的任何编程语言编写的应用程序添加web配置文件(Node.js、PHP、Python Django、Java)。你可以找到详细的信息 以下是一个示例:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
您可以通过将web.config
文件添加到部署中来实现重定向。文件说:
当托管在Azure应用程序服务上时-Azure会在部署期间自动创建文件,因此您永远不会看到它。如果在应用程序中包含一个,它将覆盖Azure自动生成的一个
为了获得额外的安全级别,您可能可以使用nsg。Azure文档将NSG称为“您可以使用Azure网络安全组来过滤Azure虚拟网络中与Azure资源之间的网络流量”。
您可以尝试使用cli创建nsg,并将规则放入其中以阻止到端口80的通信。[Update]我已设法使用IIS Manager for Remote Administration连接到Azure网站,并且可以在SSL设置下启用Require SSL。但这并不是一个可接受的解决方法,因为每次部署时都会重置设置。它不起作用