%20%2B%20%E6%96%B0%E5%A2%9E%E7%B6%81%E5%AE%9A%E5%BE%8C%E8%87%AA%E5%8B%95%E9%87%8D%E6%96%B0%E5%B0%8E%E5%90%91%E8%87%B3%20HTTPS.png)
我試圖理解一種我以前從未見過的奇怪行為。
我有一個網站。已配置連接埠 80 上的 HTTP 主機名稱綁定。該網站可透過 HTTP 存取。
當我新增 HTTPS 綁定(嘗試過 SNI 和不使用 SNI)時,我可以透過 HTTPS 存取網站。但是,當我嘗試透過 HTTP 造訪該網站時,我收到了到 HTTPS 的 307 重定向。
我沒有新增 IIS 重定向規則或 URL 重寫規則。另外,如果我將 HTTPS 端口更改為另一個端口,例如。 44300,從 HTTP(連接埠 80)的重定向更新為重定向到配置的非標準連接埠。
值得一提的是,它是一個 .NET Core 網站。應用程式是否有機會檢查 IIS 綁定,然後在此處進行正確的重定向?
感謝您所有聰明的想法!
編輯:
Microsoft.AspNetCore.HttpsPolicy
我在 json 文件中找到了對:的引用。我沒有原始碼。
另外,如果我清除 Web 根目錄並僅添加靜態 index.htm 文件,則神奇的重定向將不會發生。因此,對於 ASP.NET Core 應用程序,它似乎從 IIS 配置中讀取連接埠號,這對我來說聽起來很有線。
答案1
.NET Core 包含預設的 HTTP 到 HTTPS 重定向,當它偵測到滿足條件時可能會意外啟動。因此,如果這不是您想要的,請找到開發人員完全停用它(UseHttpsRedirection
從程式碼中刪除)。