第二节:SSL证书的申请、配置(IIS通用)及跳转Https请求的两种方式

一. 相关概念介绍

1. SSL证书服务

  SSL证书服务由"服务商"联合多家国内外数字证书管理和颁发的权威机构、在xx云平台上直接提供的服务器数字证书。您可以在阿里云、腾讯云等平台上直接购买、或者免费获取所需类型的数字证书,并一键部署在云产品中,以最小的成本将您的服务从HTTP转换成HTTPS,实现网站的身份验证和数据加密传输。

2. 什么是数字证书?

  数字证书是一个经权威授权机构数字签名、包含公开密钥拥有者信息以及公开密钥的文件,是权威机构颁发给网站的可信凭证。最简单的证书包含一个公开密钥、证书名称以及证书授权中心的数字签名。

  数字证书还有一个重要的特征:只在特定的时间段内有效。

3. 什么是SSL?

  SSL协议是一种可实现网络通信加密的安全协议,可在浏览器和网站之间建立加密通道,保障数据在传输的过程中不被篡改或窃取。

4. 什么是SSL证书?

  SSL证书采用SSL协议进行通信,是由权威机构颁发给网站的可信凭证。

  SSL证书采用SSL协议进行通信。SSL证书部署到Web服务器后,Web服务器访问将启用HTTPS协议。您的网站将会通过 HTTPS 加密协议来传输数据,可帮助Web服务器和网站间建立可信的加密链接,从而保证网络数据传输的安全。

5. 什么是Https?

  HTTPS是一种基于SSL协议的网站加密传输协议。

    网站安装SSL证书后,使用HTTPS加密协议访问,可激活客户端浏览器到网站服务器之间的SSL加密通道(SSL协议),从而实现高强度双向加密传输,防止传输数据被泄露或篡改。HTTPS 也就是HTTP + SSL,是HTTP的安全版。

6. 什么是CA认证中心?

  CA认证中心(CA机构),即证书授权中心(Certificate Authority),或称证书授权机构。

  CA认证中心作为电子商务交易中受信任的第三方,承担公钥体系中公钥合法性检验的责任。

7. 应用场景

(1). 将用户网站服务由Http改为Https协议。

(2). CDN、SCDN、DCDN或SLB服务上使用HTTPS协议。

 

二. SSL证书申请

 下面以阿里云平台为例,介绍SSL证书的申请。

1. 登录阿里云官网(https://www.aliyun.com/),进入SSL证书板块,并点击“立即购买”。

 

2. 这里有多种证书,我们选择免费版单域名证书的即可。(阿里云平台免费签发20个证书),然后立即购买→确认订单→购买成功→进入证书控制台。

 

 

3. 进入“证书控制台”,在“未签”模块会看到刚才购买的证书,点击申请,需要绑定域名(一旦绑定,则不能修改)。

 

 

 注意:如果该域名不在该账户下,会进行提示,并且需要去域名所在的账户下进行一下DNS解析配置(配置完后,这边证书验证通过后,删掉这条解析记录即可)。

 

 

补充步骤:去域名所在的账户下进行DNS解析,解析完后,再去证书账户下继续,验证,验证成功,进入待审核状态。

4. 审核完成,下载对应版本的证书即可(IIS版本)

 

 

 

三. SSL证书的配置(IIS)

1. 开始→运行→输入"MMC",进入"控制台根节点"。

 

 

2. 选择菜单“文件”中的”添加/删除管理单元”-> “添加”,从“添加或删除管理单元”列表中选择“证书”,点击添加,进入证书管理单元,选择“计算机帐户”,点击下一步,进入“选择计算机”页面,选择"本地计算机",点击完成

 

 

4. 回到最初MMC进入的控制台页面,依次进入:控制根节点→证书(本地计算机)→个人→证书,然后右键,选择所有任务→导入,进入证书导入页面。

 

5. 选中证书,输入密码,将证书导入即可。(此过程当中有一步非常重要: “根据证书内容自动选择存储区”)

 

导入成功,会在控制台页面显示。

 6. 在IIS中绑定证书即可,默认的HTTPS请求为443端口,如果改成别的话,域名后面还需要跟着端口。

7. 大功告成,以HTTPS开头,访问该域名,正常访问。

 

 

四. 跳转Https请求的两种方式

背景:我们网站项目只想保留https请求,不想开放http请求,但有些老用户已经习惯了通过http的地址进行访问,针对这种情况,我们想达到效果是,以http的形式访问我们网站,会自动切换成https的。

方案一:

1. 在IIS上新建一个项目,eg:01-80Redirect,物理路径可以绑定一个空的文件夹,将域名 xxx.xxx.com绑到80端口上。

2. 删掉原项目上绑定的80端口,仅保留443端口。

 

 

3. 给01-80Redirect,配置【Http重定向】,重定向到:https://djdt.xxx.com$V$Q ($V$Q代表这个域名下的所有子文件都跳转),勾选:“将所有请求重定向到确切目标”,状态代码选择:“永久301”,进行保存,重启这两个项目。

4. 大功告成, 访问:http://djdt.xxx.com,直接跳转到:https//djdt.xxx.com

方案二:仅针对Asp.Net Core项目

1. 在ConfigureServices进行注册跳转到Https的端口,即:凡是Http请求该网站,都会以Https的方式跳转到该接口上。

2. 在Configure中进行管道拦截,进行https的跳转。

 

3. 发布项目,在IIS中进行端口设定,同时绑定Http请求和Https请求,https请求的绑定要使用上述代码中配置的端口,如下图,访问:http://localhost:8077, 会自动跳转到https://localhost:8088

 

 

 

 

 

 

 

 

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 本人才疏学浅,用郭德纲的话说“我是一个小学生”,如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 
posted @ 2019-04-03 13:06 Yaopengfei 阅读(...) 评论(...) 编辑 收藏