在ASP.NET Core中,Microsoft建议使用HTTPS重定向和HSTS中间件,而不是IIS中的重写规则将所有HTTP请求重定向到HTTPS。
从DevOps的角度来看,IIS规则很容易在应用程序中实施。我们只是在部署过程中将重写部分作为Web.Config的一部分注入,从而迫使应用程序通过HTTPS进行传输。但是,由于中间件方法已成为代码本身的一部分,因此现在要由各个应用程序团队来实现重定向。
有没有办法让我们在应用程序之间实施HTTPS重定向,同时又不偏离微软的建议呢?
具有讽刺意味的是,推荐使用中间件方法的原因是它适用于任何部署方法,而IIS重写规则只会影响到IIS的部署。例如,如果您以后决定将一个或多个这些应用程序部署到群集中,那么您可能不再适用的任何IIS重写规则都将不再适用。在应用程序级别上设置它会强制该应用程序的状态,而不是一种特定的部署方法。另外,请记住,并非所有内容都一定是HTTPS。例如,当部署到k8s集群中时,通常会关闭此功能,因为您将在网关上使用SSL终止。
没有真正的方法来强制执行此中间件,您也不应该考虑上述实际情况,而实际上不应出现上述情况。与往常一样,独立审核始终是您最好的选择。当新应用投入生产时,应评估是否应实施SSL,并应在该阶段强制实施。
另外,FWIW,也不必是或。您可以同时使用中间和IIS重写。在这种情况下,由于IIS重写,中间件将永远无法有效利用,因为所有请求都将始终为HTTPS,但是由于某种原因,如果缺少该中间件,则中间件仍会作为备用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句