過去在開發 ASP.NET 網站應用程式時,若想要使用者強制透過 HTTPS 瀏覽網站,我們會使用 IIS Rewrite Module 來進行轉址。通常會在首頁、註冊/登入、付款...等,網頁進行 Rewrite 進而確保安全性。 在 ASP.NET Core 專案中,開發人員透過現成的 Middleware ,可以更輕鬆的控制路由。本篇文章將簡單介紹如何設定自動將使用者從 HTTP 轉向 HTTPS,若有任何錯誤或建議,請各位前輩不吝指教,謝謝。
註:本文章環境為 .NET Core 3.1
前置工作
在專案內找到 Startup.cs ,在 Configure 內加上
app.UseHttpsRedirection();
如下圖所示:
轉換不安全的連接埠 (Port)
接下來,我們要告訴程式要將不安全的 Request 轉向哪個安全的連接埠。在一般的情況下 HTTP Port 為 80 ,HTTPS Port 為 443。一般來說,我們會設定轉向 443 Port。下列有幾個轉換方式。
在開發階段,您可以在 launchsettings.json 檔案,將 URL 接調整為 HTTPS 即可,如下列範例所示:
測試或開發環境 (Windows Server):
1. 環境變數內設定 ASPNETCORE_HTTPS_PORT (這不適用於 reverse proxy 環境)
2. 第二個方法步驟比較多:
步驟1. 在 Program.cs 內加上 webBuilder.UseSetting("https_port", "443");
步驟2. 在 appsetting.json 上加上 https_port": 443,
步驟3. 在 環境變數內 加上
Name:ASPNETCORE_HTTPS_PORT
Value:443
額外補充:
若您的環境在 Azure App Service,可以在 組態 內 新增應程式設定 :
Name:ASPNETCORE_HTTPS_PORT
Value:443
0 留言