欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.Net MVC Https设置

程序员文章站 2022-08-31 17:02:55
1. IIS设置 1.1 创建SSL证书 点击左侧菜单栏顶部,点击“功能视图”里的“服务器证书”: 点击“创建自动签名证书”创建自动签名证书: 1.2 设置SSL证书 点开网站,在“功能视图”里点击“SSL设置”: 如图,设置SSL: 1.3 绑定SSL证书 点开网站,在右侧“操作”栏点击“绑定”: ......

1.   iis设置

1.1 创建ssl证书

   点击左侧菜单栏顶部,点击“功能视图”里的“服务器证书”:

Asp.Net MVC Https设置

         点击“创建自动签名证书”创建自动签名证书:

Asp.Net MVC Https设置

1.2 设置ssl证书

         点开网站,在“功能视图”里点击“ssl设置”:

Asp.Net MVC Https设置

         如图,设置ssl:

Asp.Net MVC Https设置

1.3 绑定ssl证书

         点开网站,在右侧“操作”栏点击“绑定”:

Asp.Net MVC Https设置

         添加“网站绑定”,选择https及刚刚创建的ssl证书,主机名(也就是域名)根据需要选设(iis7默认不支持,需要在配置文件applicationhost.config里进行设置,详见注):

Asp.Net MVC Https设置

         【注】域名也可以通过配置进行设置:

      打开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" />

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安全扫描时,就会扫出下面的问题:

 Asp.Net MVC Https设置

  解决办法:

  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);

 

参考资料:

iis配置https

c# mvc 网站将http强制跳转到https
ibm appscan 安全扫描:加密会话(ssl)cookie 中缺少 secure 属性 处理办法