簡體   English   中英

在 azure 上的 asp.net vnext 網站上禁用端口 80

[英]Disabling port 80 on an asp.net vnext website on azure

我覺得這應該很容易,但我正在努力找出如何去做。

我有一個我想限制為 HTTPS 的網站。 它是一個部署到 Azure 的 asp.net vnext 網站(不是 mvc)。 它在不通過 ASP.NET 管道的情況下提供靜態文件。

在以前版本的 asp.net 中,您可以添加 system.webServer 規則來進行重定向。 這已經從 vNext 消失了。 如果我使用 Mvc,我可以使用 RequireHttps 屬性,或者我可以編寫自定義中間件來執行重定向,但這僅在 asp.net 管道被激活時才會啟動。 我的 html 和 js(它是一個 SPA 應用程序)仍會提供。 如果我部署到 IIS 而不是 Azure,我可以在那里配置它。

那么,如何告訴 azure 網站只在沒有 Web 配置文件的情況下在端口 443 上響應?

根據 Azure 文檔,您可以為使用 Azure 支持的任何編程語言(Node.js、PHP、Python Django、Java)編寫的應用程序添加 Web 配置文件。 您可以在此處找到詳細信息

這是一個示例:

<?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 的流量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM