如何强制webapi在IIS上只监听HTTPS

nnsrf1az  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(148)

我正在寻找如何在我的网络API服务器使用IIS托管强制https。
我的项目在wwwroot和.NET Core Web API中有一个vuejs客户端Web。
Web API可以使用IIS或Kestrel。
使用kestrel和正确的配置,当我执行服务器的exe文件时,我有:

服务器监听https上的64444端口。
但是如果我使用IIS,当我浏览网站和IIS启动exe文件时,我有这个:

IIS上的站点已正确配置,具有非托管代码应用程序池和https上端口为64443的绑定。当我浏览网站到url https://localhost:64443时,网站工作正常,但我可以看到IIS和Web API服务器之间的wireshark流量很明显。
我尝试在appsettings.json中添加“https_port”,但不起作用。
主机配置:

在应用程序上配置了HttpsRedirection。
谢谢你的帮助

jljoyd4f

jljoyd4f1#

我发现问题出在哪里了,主机模型设置为“OutOfProcess”,为了在IIS后面使用Kestrel,但在这个主机模型中,IIS和Kestrel之间的通信总是使用HTTP,即使Kestrel被设置为使用HTTPS:“该模块不支持HTTPS转发。即使IIS通过HTTPS接收请求,请求也会通过HTTP转发”(learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/.)

ca1c2owp

ca1c2owp2#

让我们在IIS中使用HSTS配置。
RFC 6797中规定的HTTP严格传输安全性(HSTS)允许网站将自己声明为安全主机,并通知浏览器只能通过HTTPS连接进行联系

相关问题