Asp.Net MVC Https设置
1. IIS设置
1.1 创建SSL证书
点击左侧菜单栏顶部,点击“功能视图”里的“服务器证书”:
点击“创建自动签名证书”创建自动签名证书:
1.2 绑定SSL证书
点开网站,在右侧“操作”栏点击“绑定”:
添加“网站绑定”,选择https及刚刚创建的SSL证书,主机名(也就是域名)根据需要选设(IIS7默认不支持,需要在配置文件applicationHost.config里进行设置,详见注):
【注】域名也可以通过配置进行设置:
打开C:\Windows\system32\inetsrv\config\applicationHost.config在里面找到
<bindings> <binding protocol="https" bindingInformation="*:443:" /> <binding protocol="http" bindingInformation="*:80:www.yourdomain.com" /> </bindings>
找到https的配置项目,修改为:
<binding protocol="https" bindingInformation="*:443:www.yourdomain.com"/>
这里面需要注意的是:bindings节点有多个,需要找到你配置的站点,默认是
<binding protocol="https" bindingInformation="*:443" />
1.3 设置SSL证书
点开网站,在“功能视图”里点击“SSL设置”:
如图,设置SSL:
2.强制使用https
MVC操作非常简单,只需要在网站Index设置RequireHttps特性即可:
[RequireHttps] public ActionResult Index() { return View(); }
这是一种投机的设置,合理的做法应该是在项目Global.asax文件 Application_Start中添加过滤:
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
3.https使用中的问题
3.1 百度地图的问题
https的网站使用百度地图,如果你引用的地址没写对的话,加载不出来百度地图,被认为是不安全的JS内容。解决方式:
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1
加上s=1代表引用的是https的。
3.2 加密会话(SSL)Cookie 中缺少 Secure 属性问题
服务器开启了Https时,cookie的Secure属性应设为true,否则,在进行IBM AppScan安全扫描时,就会扫出下面的问题:
解决办法:
1. 修改web.config,添加:
<system.web> <httpCookies httpOnlyCookies="true" requireSSL="true" /> <system.web>
2. 修改后台写Cookies时的设置 cookie.Secure = true:
1 HttpResponse response = HttpContext.Current.Response; 2 var cookie = new HttpCookie(key, value); 3 cookie.HttpOnly = true; 4 cookie.Path = "/"; 5 cookie.Expires = DateTime.Now.AddHours(1); 6 cookie.Secure = true; 7 response.AppendCookie(cookie);
参考资料:
C# MVC 网站将http强制跳转到https
IBM AppScan
安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性 处理办法
本文来自博客园,作者:yscit,转载请注明原文链接:https://www.cnblogs.com/yscit/p/10404926.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?