一、项目配置

什么是全站HTTPS

全站HTTPS就是指整个网站的所有页面,所有资源全部使用HTTPS链接。
当用户的某个请求是明文的HTTP时,应该通过HTTP状态码301永久重定向到对应的HTTPS链接。

为了实现全站HTTPS,可以从下面两种方法中选取一种。

(1)修改Global.asax.cs

Global.asax.cs添加如下代码

#if !DEBUG
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
#endif

这是配置了ASP.NET的程序,可以处理所有的经过ASP.NET处理的请求;但是对于存放在Web服务器上的其他资源文件(即不经过ASP.NET的程序的处理)无效。
如果有此需求,应该告知IIS服务器不要私自回复用户请求,要求所有请求都必须由ASP.NET程序执行。
此时,在Web.config下增加下面的内容,注意是根目录的Web.config而不是Views文件夹的Web.config

<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<system.webServer>

[QIN.WARNING] 所有的请求都会发送给ASP.NET处理,此时应确保程序有能力处理原来属于IIS负责的那部分内容,比如图片。

(2)修改Web.config部署全站HTTPS

2.1  修改最外层Web.Config

在Web.config的configuration节点下,找到或添加system.webServer节点,并在此节点下添加:

    <rewrite>
<rules>
<!-- clear 会清除掉已有的rule,如果添加过别的rule,请注意确认-->
<clear/>
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>

2.2  仅修改Release的Web.config

这样就算轻松搞定了,但是在开发时,我们不希望要求HTTPS,这时可以通过只修改Release的Web.config来解决。
首先,不要修改Web.config,而是找到Web.Release.config(VS点开Web.config的小箭头)。
configuration节点下添加如下内容:

  <system.webServer>
<rewrite xdt:Transform="Insert">
<rules>
<!-- clear 会清除掉已有的rule,如果添加过别的rule,请注意确认-->
<clear/>
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>

这个如刚才的区别仅仅在于<rewrite xdt:Transform="Insert">

二、IIS配置

1,新建网站,选中类型为

https,然后更改SSL证书为你配置的SSL证书

对于SSL证书的配置是这样的

点开第二步,然后点击

创建自签名证书

确定以后点开网站看到有个SSL,

双击进去,再选中

要求SSL

选中此步就是为了防止浏览器认为你的网站不安全阻止网站的访问,到此,证书配置完成

然后发现IIS无法绑定域名,因为IIS7默认不支持HTTPS绑定域名,此时需要自己手动去设置

首先打开

C:\Windows\system32\inetsrv\config\applicationHost.config

在里面找到

<bindings>
                    <binding protocol="https" bindingInformation="*:443" />
                    <binding protocol="net.tcp" bindingInformation="808:*" />
                    <binding protocol="net.pipe" bindingInformation="*" />
                    <binding protocol="net.msmq" bindingInformation="localhost" />
                    <binding protocol="msmq.formatname" bindingInformation="localhost" />
                    <binding protocol="http" bindingInformation="*:80:www.console.com" />
                </bindings>

找到https的配置项目,修改为:

<binding protocol="https" bindingInformation="*:443:www.console.com" />

这里面需要注意的是:bindings节点有多个,需要找到你配置的站点,默认是<binding protocol="https" bindingInformation="*:443" />

然后保存,此时,HTTPS在IIS7上绑定域名搞定

MVC 部署HTTPS网站的更多相关文章

  1. 我们在部署 HTTPS 网站时,该如何选择SSL证书?

    我们在部署 HTTPS 网站时,该如何选择SSL证书? 首次部署HTTPS网站的同学对选择什么样的SSL证书多多少少都有点迷茫. 这里考虑的因素确实不少:是否支持多域名.泛域名,价格,信息泄露的保额, ...

  2. Nginx自建SSL证书部署HTTPS网站

    一.创建SSL相关证书 1.安装Nginx(这里为了测试使用yum安装,实际看具体情况) [root@localhost ~]# yum install nginx -y #默认yum安装已经支持SS ...

  3. Nginx配置SSL证书部署HTTPS网站(颁发证书)

    一.Http与Https的区别HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...

  4. Nginx配置SSL证书部署HTTPS网站

    1.购买ssl证书 购买网站:沃通 2.上传证书到nginx服务器,然后进行解压. 解压后的的效果: [root@bubidev-ng3 nginx]# pwd/etc/nginx [root@bub ...

  5. 网站部署 HTTPS 中需要做的事情

    这篇文章首发于我的个人网站:听说 - https://tasaid.com/,建议在我的个人网站阅读,拥有更好的阅读体验. 这篇文章与 博客园 和 Segmentfault 共享. 前端开发QQ群:3 ...

  6. https申请证书并部署到网站流程,浏览器验证证书流程

    https申请证书并部署到网站流程: 1.生成一对秘钥,设公钥为pubk1,私钥为prik12.假设发布的网站地址为https://www.example.com3.生成一个CSR文件(Cerific ...

  7. 明年将制定个人信息保护法 网站部署https迫在眉睫

    12月20日,全国人大常委会法工委举行第三次记者会.全国人大常委会法工委发言人岳仲明表示,中国明年将制定个人信息保护法.数据安全法等. 数据泄露为何频频出现 你是否经常接到骚扰电话?推销.诈骗等等均有 ...

  8. 腾讯云上免费部署HTTPS

    接上篇<腾讯云下安装 nodejs + 实现 Nginx 反向代理>,想从头一步到位的同学建议从上篇文章开始阅读.本文将继续介绍如何通过 Nginx 免费部署HTTPS. 留意下,这里的“ ...

  9. ASP.NET Core Kestrel部署HTTPS

    ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET Core 部署HTTPS,直接通过配置Kestr ...

随机推荐

  1. web应用1

    阅读内容 一.web应用 二.web协议 三.web框架 四.补充知识 回到顶部 一.web应用 二.web协议 三.web框架 四.补充知识 五.补充知识

  2. eos 空投列表网址 及 工具网站列表

    https://eosdrops.io https://www.shensi.com/#/eos eos 区块链浏览器: https://eostracker.io/ https://eospark. ...

  3. [vue]webpack中使用组件

    https://blog.csdn.net/ywl570717586/article/details/79984909 vue.js中全局组件 全局组件的定义 <!DOCTYPE html> ...

  4. 由ngx.say和ngx.print差异引发的血案

    Jan 16, 2018openresty点击 最近上线一个项目,利用openresty在前面做反向代理,部分地址通过lua的http请求后端接口进行返回,在线下测试都没问题,公司预发灰度测试都通过了 ...

  5. 深入理解Lua的闭包一:概念、应用和实现原理

    本文首先通过具体的例子讲解了Lua中闭包的概念,然后总结了闭包的应用场合,最后探讨了Lua中闭包的实现原理.   闭包的概念 在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量 ...

  6. DL中epoch、batch等的意义【转载】

    转自:深度学习中 number of training epochs 中的 epoch到底指什么? - 知乎 https://www.zhihu.com/question/43673341 1. (1 ...

  7. 软RAID管理命令mdadm详解

    软RAID管理命令mdadm详解 mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令.但由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的 ...

  8. daofu

    快排排序算法 public class QuickSort { public static void Main(String[] args) { , , , , , , , }; quickSort( ...

  9. vue 使用高德地图vue-amap组件

    首先    npm install -S vue-amap 然后在 main.js import VueAMap from 'vue-amap'; //注意不要和 AMap原始名称覆盖 Vue.use ...

  10. CSS选择器操作大全

    一,CSS选择器分类 二,选择器语法 1,基本选择器语法 选择器 类型 功能描述 *  通配选择器  选择文档中所以HTML元素 E  元素选择器 选择指定类型的HTML元素 #id  ID选择器 选 ...