一、什么是HTTPS

简单的理解HTTPS就是使用SSL/TLS加密内容的、安全的HTTP协议

HTTPS = HTTP + SSL/TLS

二、对称加密与非对称加密

对称加密:加密和解密使用同一密钥。简单、快速、效率高

非对称加密:加密解密密钥不同,加密使用公钥、解密使用私钥,私钥只有一人保管,公钥可以有多人知道。安全性更强、但性能消耗比对称加密大

SSL/TLS中同时使用了两种加密方式,建立连接时使用非对称加密传输产生密钥的随机数,链接建立后使用对称加密传输通信内容

三、SSL/TLS握手过程

SSL/TLS的握手过程可以用上图描述

1、客户端向服务端发送Client Hello,产生随机数random1,并说明客户端支持的加密方式和协议版本

2、服务端收到客户端请求后,返回Server Hello,同时携带随机数random2与数字证书,其中公钥在数字证书中一同发送,避免篡改。

3、客户端收到服务端Server Hello后,验证数字证书有效,使用生成随机数random3,并使用公钥加密,发送给服务端

4、服务端使用私钥解密得到random3

5、客户端和服务端根据约定好的加密方式,以及三个随机数生成对话密钥(session key),使用对话密钥加密内容开始双方会话

四、私钥的作用

当使用CDN服务器的时候出于安全考虑不能把密钥交给CDN服务器。

回顾整个握手链接过程,密钥只在解密第三个随机数时使用一次,因此,只需要把这个过程留在自己服务器就可以。CDN服务器把客户端加密的随机数发送给业务服务器,业务服务器将数据解密后传回给CDN服务,其他流程均交给CDN服务

具体流程如下图

五、HTTPS与HTTP不同点

对比内容 HTTPS HTTP
是否付费 证书大多数需付费 无需
传输信息方式 SSL/TLS协议加密信息,更安全 明文传输信息
端口 443 80

六、不使用HTTPS有那些风险

1、窃听风险,第三方可能获取通信内容

2、篡改风险,通信内容可能被第三方篡改

3、冒充风险,第三方可能被冒充他人参与通信

七、如何将HTTP站点转成HTTPS站点

HTTPS 升级指南:http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html

八、升级HTTPS后需要注意的问题

注意在HTTPS访问的页面,在请求资源时也需要使用HTTPS,如果使用HTTP在IE中会出现不安全项目弹框

可以使用协议相对URL解决这个问题

<img src="https://www.aaa.org/logo.png" alt="" />

<img src="//www.aaa.org/logo.png" alt="" /><!--协议相对URL-->

协议相对URL,如上面代码第二行,即省略URL协议声明的方式,使用了这种方式浏览器会使用页面访问相同的协议请求页面资源

协议相对URL可以使用在HTML中的链接中,也可以使用在css中。但是在IE6/7中link或@import资源会被下载两次,除此以外没有其他问题

使用场景举例

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js"></script>
<link rel="stylesheet" href="//www.ludou.org/style.css" />
<a href="//www.ludou.org/">Ludou</a>
.logo { background: url(//www.ludou.org/logo.png); }

参考

图解SSL/TLS协议:http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

与HTTP有什么区别?HTTPS的七个误解:https://www.admin5.com/article/20150523/600106.shtml

网站是否需要HTTPS加密:https://www.admin5.com/special/https/

HTTPS安全超文本传输协议的更多相关文章

  1. 【RL-TCPnet网络教程】第41章 HTTP超文本传输协议基础知识

    第41章      HTTP超文本传输协议基础知识 本章节为大家讲解HTTP(HyperText Transfer Protocol,超文本传输协议),从本章节开始,正式进入嵌入式Web的设计和学习. ...

  2. 安全超文本传输协议(HTTPS)详解

    一.概念与摘要 HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息.它使 ...

  3. HTTPS----安全超文本传输协议

    HTTPS协议详解HTTPS以保密为目标研发,简单讲是HTTP的安全版.其安全基础是SSL协议,因此加密的详细内容请看SSL.全称Hypertext Transfer Protocol over Se ...

  4. http 超文本传输协议

    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接 ...

  5. HTTP超文本传输协议-HTTP/1.1中文版

    摘要 超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途外 ...

  6. 超文本传输协议-HTTP/1.1

    超文本传输协议-HTTP/1.1(修订版) ---译者:孙超进本协议不限流传发布.版权声明Copyright (C) The Internet Society (1999). All Rights R ...

  7. HTTP协议(超文本传输协议)

    一.HTTP的简介: 超文本传输协议. 它是基于TCP连接的(默认端口号是80).所以在传输数据前客户端需向服务器发送连接请求.当服务器同意连接请求,建立连接后才可以发送数据报文. 二.HTTP的报文 ...

  8. Hyper Text Transfer Protocol(超文本传输协议)

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...

  9. 第9章 应用层(4)_超文本传输协议HTTP

    5. 超文本传输协议HTTP 5.1 统一资源定位符URL (1)URL的一般形式:<协议>://<主机>:<端口>/<路径> ①协议后面必须写上“:/ ...

随机推荐

  1. Getting command line access to PHP and MySQL running MAMP on OSX

    建立自己profile路径应该在/Users/yourname/,最后要运行. ./.profile使文件生效,和windows中给添加环境变量是一个道理,还可以看出linux和UNIX默认运行路径为 ...

  2. 42.zip

    最近看linux的解压缩,无意间了解到了一个和压缩率相关的小故事——42.zip 一般我们使用压缩工具的时候,都会用到无损压缩技术,对于无损压缩,算法非常重要,不同的算法实现 的压缩率和速度有很大差别 ...

  3. 正则 匹配 HTML 标签

    var tt=((result.data).toString()).match(/<style(([\s\S])*?)<\/style>/g);

  4. python常用模块之xml模块

    python常用模块之xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,在json还没诞生的年代,大家都是使用xml,目前很多传统公司的系 ...

  5. GitHub https链接中输入账户和密码

    /********************************************************************** * GitHub https链接中输入账户和密码 * 说 ...

  6. Linux usleep for shell

    /**************************************************************************** * Linux usleep for she ...

  7. 求整数A和B的二进制表示中有多少位是不同?

    如果有题目要求整数A和B二进制表示中多少位是不同的? 那我们要先考虑一个unsigned类型中变量1的个数?我们可以考虑简单的移位运算,向右移位,我们进行判断如果不是1直接丢掉,使用&运算符即 ...

  8. java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁

    之前做过一个测试,详情见这篇文章<多线程 +1操作的几种实现方式,及效率对比>,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchronized效率最高 ...

  9. bzoj 4303 数列

    bzoj 4303 数列 二维 \(KD-Tree\) 模板题. \(KD-Tree\) 虽然在更新和查询的方式上类似于线段树,但其本身定义是类似于用 \(splay/fhq\ treap\) 维护区 ...

  10. Codeforces 1012C Hills【DP】*

    Codeforces 1012C Hills Welcome to Innopolis city. Throughout the whole year, Innopolis citizens suff ...