纵有疾风起
人生不言弃

netcore强制使用https,把所有的HTTP请求转换为HTTPS

使用HTTPS

根据官方文档(https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.1&tabs=visual-studio#require-https), 它建议ASP.NET Core web应用都应该调用HTTPS重定向中间件, 这样就可以把所有的HTTP请求转换为HTTPS.

只需要在Startup的Configure方法里调用UseHttpsRedirection()方法即可:

netcore强制使用https,把所有的HTTP请求转换为HTTPS插图
UseHttpsRedirection

而在ConfigureServices方法里可以配置这个中间件:

netcore强制使用https,把所有的HTTP请求转换为HTTPS插图1
AddHttpsRedirection

HSTS (HTTP 严格的传输安全协议)

web应用通过使用特殊的响应header可以选择使用加强的安全协议OWASP(Open Web Application Security Project), HSTS(HTTP Strict Transport Security). 当所支持的浏览器接收到这个header的时候, 浏览器就会阻止任何通过HTTP到指定域名的通信, 会使用HTTPS代替. 同时它也会阻止从浏览提的提示框点击的HTTPS.

为实现这个只需要在Startup的Configure里使用:

netcore强制使用https,把所有的HTTP请求转换为HTTPS插图2
UseHsts

一般不建议在开发环境使用Hsts, 因为浏览器极有可能会缓存HSTS 的header. 默认情况下, UseHsts会排除本地回路的地址.

UseHsts会排除下列回路宿主:

  • localhost : IPv4 回路地址.
  • 127.0.0.1 : IPv4 回路地址.
  • [::1] : IPv6 回路地址.

可以在ConfigureServices方法里对它进行配置:

netcore强制使用https,把所有的HTTP请求转换为HTTPS插图3
addhsts

这部分具体请查看文档: https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.1&tabs=visual-studio#http-strict-transport-security-protocol-hsts

文章转载于:https://www.jianshu.com/p/f70e8acba934

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » netcore强制使用https,把所有的HTTP请求转换为HTTPS
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录