一、什么是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://www.cnblogs.com/zs-note/p/9914067.html

HTTPS安全超文本传输协议相关推荐

  1. Servlet - HTTP超文本传输协议

    HTTP (超文本传输协议) 超文本传输协议(HTTP)是用于协作.分布式.超媒体信息系统的应用级协议.它是用于建立客户端和服务器之间通信的数据通信协议.   HTTP协议是基于TCP/IP的通信协议 ...

  2. HTTP协议(HyperText Transfer Protocol,超文本传输协议)

    HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一个基于TCP/IP通信 ...

  3. 吾解——HTTP(超文本传输协议)

    今天拜读了一本<图解HTTP>,将HTTP总结一下. HTTP(超文本传输协议):一种规则 1.定义:一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样 ...

  4. http超文本传输协议

    http简介 超文本传输协议(HyperText Transfer Protocol),详细规定浏览器和万维网之间互相通信的规则,是万维网交换信息的基础,允许将HTML文档从Web服务器传送到Web服 ...

  5. 超文本传输协议及HTTP包

    HTTP协议用于在Internet上发送和接收消息.HTTP协议是一种请求-应答式的协议 --客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包.HTTP协议使用可靠的TCP连 ...

  6. HTTP 和 HTTPS 两种传输协议各自含义是什么?二者使用有什么区别?

    文章目录 前言 一.什么是 HTTP 传输协议? 二.什么是 HTTPS 传输协议? 三.HTTP 和 HTTPS 有何区别? 总结 前言 HTTP 属于超文本传输协议,用来在 Internet 上传 ...

  7. 网络(7)-HTTP(HyperText Transfer Protocol,超文本传输协议)

    http是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应.请求和响应消息的头以ASCII码形式给出:而消息内容则具有一个类似MIME的 ...

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

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

  9. Http——超文本传输协议

    目录 1.Http是什么 2.Http的发展 3.http请求 4.http响应 1.Http是什么 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请 ...

最新文章

  1. linux 线程库在哪里,linux线程库
  2. 单链表的查找和取值-1
  3. mysql数据库的快捷键
  4. LeetCode 480. 滑动窗口中位数(大小堆升级版+set实现)
  5. js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox
  6. 建议提交的时候默认保存到剪贴板
  7. python怎么写测试脚本语言_用python编写测试脚本
  8. 经典C语言编程100例——题目+答案代码(1-10)
  9. 【Python】利用MD5文件去重
  10. 华为模拟器ENSP下载与安装详细教程(win10 LTSC系统中安装)
  11. Linux完美学习笔记
  12. 盛世昊通打造线上线下融合的百业联盟商业生态
  13. 超级账本Fabric2.x 如何将智能合约部署到通道
  14. C#发送企业内部邮件
  15. txt文本QQ群推广方式
  16. Mangos人物声望代码
  17. 寻找二值图像连通域的算法分析
  18. 回转寿司——有趣的分块
  19. bootstrap table php,Bootstrap Table使用方法详解
  20. 2022-2027年中国工业硅行业市场深度分析及投资战略规划报告

热门文章

  1. WEB框架研究笔记六(Spring WEB)
  2. cmd命令重定向到剪切板
  3. 【JavaEE企业应用实战学习记录】struts配置文件详细解析
  4. 深入浅出 JavaScript 中的 this
  5. 正则表达式:Pattern 与Matcher
  6. 新装ubuntu10.04后的一些设置
  7. WebDriver 小毛笔记(二)准备工作
  8. Android Activity 提示[No Launcher activity found!]
  9. android sharedUserId 共享用户
  10. Android复合控件创建与使用Demo