一、什么是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. PostgreSQL逻辑复制使用记录

    之前逻辑复制刚刚出来的时候就使用过,但是没有进行整理,这次一个项目需要逻辑复制的自动迁移,再次拾起逻辑复制. 在此之前有两个疑问: 1)同一个表,既有流复制,又有逻辑复制,这样数据会有两份吗? --不 ...

  2. 关于block和inline元素的float

    CSS float 浮动属性 本篇主要介绍float属性:定义元素朝哪个方向浮动. 目录 1. 页面布局方式:介绍文档流.浮动层以及float属性. 2. float:left :介绍float为 l ...

  3. 微信小程序的一些数据调用方式

    1.模板数据的调用 一张图了解一下在wxml页调用预先定义好的模板: 可以看到上面调用了两个模板,数据调用却是不同的,obj是一个对象,对象内包含多个键值对形式的数据: tabbar是一个一维数组,每 ...

  4. CUDA Samples: heat conduction(模拟热传导)

    以下CUDA sample是分别用C++和CUDA实现的模拟热传导生成的图像,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第七章,各个文件内 ...

  5. ScrollView中嵌套ExpandableListView

    为了让SrollView中嵌套ExpandableListView,我们就得改ListView的高度,所以写一个类继承于ExpandableListview: import android.conte ...

  6. C程序fork进程导致PHP执行不退出

    /********************************************************************* * C程序fork进程导致PHP执行不退出 * 说明: * ...

  7. I.MX6 Kernel BUG at include/linux/netdevice.h:520!

    /*************************************************************************** * I.MX6 Kernel BUG at i ...

  8. 【剑指offer】找出数组中任意一个重复的数字,C++实现

    原创博文,转载请注明出处! # 题目 # 思路 对于长度为n的数组,范围为0~n-1的数字而言,如果不粗在重复数字,则排序后数组元素和数组角标相同.如果存在重复数字,则在排序的过程中会出现不同下标对应 ...

  9. Git详解之九 Git内部原理

    以下内容转载自:http://www.open-open.com/lib/view/open1328070620202.html Git 内部原理 不管你是从前面的章节直接跳到了本章,还是读完了其余各 ...

  10. 类(Classes)

    待写! 这里极力推荐博客园Vamei写的python系列文章,非常精彩,我只是遵照着The Python Tutorial目录来记录自己的学习体会,但也在看Vamei的文章,给大家推荐! 作者:Vam ...