1、CA(为服务器做担保的第三方机构)将包含CA【公钥C】等信息的【证书C】发送给浏览器;

2、服务器将其【公钥S】和网站信息发送给CA;

3、CA用CA【私钥C】将这些信息加密得到了签名后的【服务器证书S】,发送给服务器;

4、浏览器输入使用https协议的url;

5、浏览器与服务器建立TCP连接;

6、浏览器与服务器建立TLS(SSL)连接(1):主要传输浏览器支持的加密算法列表等,其中还包括用于生成对称密钥的客户端随机数;

7、浏览器与服务器建立TLS(SSL)连接(2):传输服务器选择的加密算法,其中包括用于生成对称密钥的服务器随机数;

8、浏览器与服务器建立TLS(SSL)连接(3):传输【服务器证书S】(经过CA私钥加密的公钥、域名等);

9、浏览器用CA【证书C】的公钥解密【服务器证书S】,进行证书校验,验证解密后的【服务器证书S】中的域名是否正确并获得服务器【公钥S】;

10、浏览器与服务器建立TLS(SSL)连接(4):浏览器产生pre_master key,用服务器发来的【公钥S】加密后发给服务器(用生成对称密钥);

11、浏览器用客户端随机数、服务器随机数、pre_master key生成对称加密【密钥A】;

12、服务器用其【密钥S】将收到的pre_master key解密,生成对称加密【密钥A】;

13、浏览器与服务器建立TLS(SSL)连接(5):浏览器通知服务器协商完成;

14、浏览器与服务器建立TLS(SSL)连接(6):浏览器生成一段信息,用生成的对称【密钥A】加密发送给服务器用于握手验证;

15、服务器用生成的【密钥A】解密收到的信息,验证协商结果的正确性;

16、浏览器与服务器建立TLS(SSL)连接(7):服务器同样生成一段信息,用生成的对称【密钥A】加密发送给浏览器用于握手验证;

17、浏览器用生成的【密钥A】解密收到的信息,验证协商结果的正确性,通过后则握手协商过程结束;

18、开始后续双方建立在此次安全握手基础上的会话,用对称加密【密钥A】对对话加密。

总结:

一、浏览器保存有CA机构的信息,包括公钥,通过CA对相关网站的担保确定网站请求的安全性【1】;

二、服务器的公钥和网站信息通过CA的私钥签名确保公钥、网站等信息不会被中间人更改【2-3】;

三、建立安全ssl连接,用CA机构的【公钥C】解密,确保每一次浏览器与服务器间的会话信息都没有被串改,获得对方有效的【公钥S】以及随机数【6-9】;

四、用【公钥C】加密传递pre_master key,确保双方计算出相同的对称加密【密钥A】【10-13】;

五、用协商生成的【密钥A】验证ssl握手和密钥的正确性,完成ssl握手过程【14-17】;

  

  

HTTPS工作流程(入门)的更多相关文章

  1. [信息安全] 3.HTTPS工作流程

    [信息安全]系列博客:http://www.cnblogs.com/linianhui/category/985957.html 0. 简单回顾 在前面两篇博客中介绍了密码相关的一些基本工具,包括(对 ...

  2. HTTPS工作流程

    HTTPS工作流程 RSA算法 RSA的密钥分成两个部分: PublicKey 加密数据 验证签名 不能解密 任何人都可以获得 Private Key 数据签名(摘要算法) 解密 加密(不用此功能) ...

  3. Mybatis第一篇【介绍、快速入门、工作流程】

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  4. SpringMVC第一篇【介绍、入门、工作流程、控制器】

    什么是SpringMVC? SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于struts2框架 为什么要使用 ...

  5. 工作流程引挈 https://www.flowable.org/

    工作流程引挈 :   https://www.flowable.org/ 起源:JBPM,Activiti

  6. HTTPS协议工作流程

    被问到了,复习一下HTTPS的工作流程 提到https,不得不提SSL SSL 1.        安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全 ...

  7. Java开发学习(十五)----AOP入门案例及其工作流程解析

    一.AOP简介 1.1 什么是AOP AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构. OOP(Object Oriented ...

  8. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  9. SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)

    原文地址:http://www.cnblogs.com/jifeng/archive/2010/11/30/1891779.html SSL协议的工作流程: 服务器认证阶段:1)客户端向服务器发送一个 ...

随机推荐

  1. 在VMware下进行的使用ssh服务管理远程主机

    基于密钥的安全验证--sshd服务的配置文件解析(两台linux) 首先你有两台虚拟机  并且能够ping通(该实验的目的是通过客户端访问服务端) 打开终端进入到这个界面 看一下服务  如果有这三个服 ...

  2. 数竞大佬jhc的三角函数复习题

    班主任让数竞大佬jhc整理的三角函数复习题,我参与编辑完成.个别题目来自参考书.度盘pdf格式下载:复习题提取码419d,答案提取码5a12 "单纯"的运算 本文由蒋浩川原创,由\ ...

  3. vue学习之插槽

    插槽 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. 个人理解:我感觉插槽就是父组件控制插槽 ...

  4. 深度解密Go语言之 pprof

    目录 什么是 pprof pprof 的作用 pprof 如何使用 runtime/pprof net/http/pprof pprof 进阶 Russ Cox 实战 查找内存泄露 总结 参考资料 相 ...

  5. Lost My Music:倍增实现可持久化单调栈维护凸包

    题目就是求树上每个节点的所有祖先中(ci-cj)/(dj-di)的最小值. 那么就是(ci-cj)/(di-dj)的最大值了. 对于每一个点,它的(ci,di)都是二维坐标系里的一个点 要求的就是祖先 ...

  6. JavaScript权威指南----一个JavaScript贷款计算器

    废话不多说上例子代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...

  7. MQ基本应用场景

    简介 消息队列 MQ 既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积.高吞吐.可靠重试等特性. 应用场景 削峰填谷:诸如秒杀.抢红包.企业开门红等大型活动时皆 ...

  8. static静态关键字

    转载自大佬:https://www.cnblogs.com/xrq730/p/4820992.html 静态资源和静态方法 首先,静态的资源和方法等会随着类的加载而进入内存被初始化,而非静态的资源和方 ...

  9. 创建基于OData的Web API - Knowledge Builder API, Part IV: Write Controller

    基于上一篇<创建基于OData的Web API - Knowledge Builder API, Part III:Write Model and Controller>,新创建的ODat ...

  10. (C#)WPF:Grid面板介绍

    Grid:网格面板 Grid和其他各个Panel比较起来,功能最多也最为复杂.要使用Grid,首先要向RowDefinitions和ColumnDefinitions属性中添加一定数量的RowDefi ...