中介軟體:HTTPS 重新導向中介軟體會在不明確的 HTTPS 連接埠上擲回例外狀況
在 ASP.NET Core 6.0 中,當 HTTPS 重新導向中介軟體 在伺服器組態中找到多個 HTTPS 連接埠時,會擲回類型 InvalidOperationException 的例外狀況。 例外狀況的訊息包含文字「無法判斷來自 IServerAddressesFeature 的 HTTPs 連接埠,找到多個值。 在 HttpsRedirectionOptions.HttpsPort 上明確設定所需的連接埠。」
如需討論,請參閱 GitHub 問題 dotnet/aspnetcore#29222。
導入的版本
ASP.NET Core 6.0
舊的行為
當 HTTPS 重新導向中介軟體未明確設定連接埠時,它會在第一個要求期間搜尋 IServerAddressesFeature,以判斷其應該重新導向的 HTTPS 連接埠。
如果沒有 HTTPS 連接埠或多個不同的連接埠,則不清楚應該使用哪個連接埠。 中介軟體會記錄警告並自行停用。 HTTP 要求會正常處理。
新的行為
當 HTTPS 重新導向中介軟體未明確設定連接埠時,它會在第一個要求期間搜尋 IServerAddressesFeature
,以判斷其應該重新導向的 HTTPS 連接埠。
如果沒有 HTTPS 連接埠,中介軟體仍會記錄警告並自行停用。 HTTP 要求會正常處理。 此行為支援:
- 沒有 HTTPS 的開發案例。
- 在到達伺服器前終止 TLS 的託管案例。
如果沒有或多個不同的連接埠,則不清楚應該使用哪個連接埠。 中介軟體會擲回例外狀況,並使 HTTP 要求失敗。
變更原因
這項變更可防止在已知有 HTTPS 可用時,透過未加密的 HTTP 連線提供潛在的敏感性資料。
建議的動作
若要在伺服器有多個不同的 HTTPS 連接埠時,啟用 HTTPS 重新導向,您必須在組態中指定一個埠。 如需詳細資訊,請參閱連接埠組態。
如果您的應用程式中不需要 HTTPS 重新導向中介軟體,請從 Startup.cs 中移除 UseHttpsRedirection
。
如果您需要動態選取正確的 HTTPS 連接埠,請在 GitHub 問題 dotnet/aspnetcore#21291中提供意見反應。
受影響的 API
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應