HTTPS工作原理

先简述一下什么是HTTPS,HTTPS就是在HTTP的基础上增加了SSL/TLS来完成加密传输,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。

一、客户端发起HTTPS请求

这个没什么好说的,就是用户在浏览器里输入一个HTTPS网址,然后连接到server的443端口。

二、服务端的配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。

而使用公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人又这把要是,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把要是,所以只有你才能看到这被锁锁起来的东西。

三、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

四、客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。

如果证书没有问题,那么就会生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

五、传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密了。

六、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

七、传输加密后的信息

这部分信息是服务端用私钥加密后的信息,可以在客户端被还原。

八、客户端解密信息

客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows和linux中查找文档中的特定字符

一、windows上,使用find命令。 语法:findstr [参数] [字符串] [磁盘:[目录]文件] findstr [/v] [/n] [/i] [/offline] “string” [[drive:][path]filename[ …]] 参数说明: /b 如果位于行的开头则匹配模式。 /e …

lil_matrix()

看代码的时候遇到的,简单记录记录一下。 这是一种用于逐步构建稀疏矩阵的结构(官方文档中写的),换句话说这是一种存储稀疏矩阵的方式。该稀疏矩阵通过两个list存储: rows [list([ ]) list([ ]) list([ ]) ... list(…

【C#】类的赋值是引用

在C#中,类的赋值是将一个类的实例赋给另一个类的实例或者将一个类的实例赋给一个变量。 例如,假设有一个名为Person的类: csharp public class Person { public string Name { get; set; } public int Age { get; set; } } 然后可以创建两个…

[JavaScript游戏开发] 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 文章目录 系列文章目录前言一、本章节效果图二、介绍2.1、准备地图素材2.2、封装地图上…

[OnWork.Tools]系列 01-简介

说明 OnWork.Tools 是基于 Net6 的桌面程序。支持Windows7SP1及以上系统,主要是日常办公或者是开发工作过程中常用的工具集合。界面使用WPF Mvvm模式开发,目的是将开源项目中,好用的项目集成到一起,方便大家使用和学习。 功能 …

React:从 npx开始

使用 npm 来创建第一个 recat 文件( react-demo 是文件名,可以自定义) npx create-react-app react-demo npx是 npm v5.2 版本新添加的命令,用来简化 npm 中工具包的使用 原始: 全局安装npm i -g create-react-app 2 …

thinkphp 用户登录记录日记

<?phpnamespace app\api\model;use think\Model;class OperateLog extends Model {// 唯一键protected $pk id;protected $table operate_log;public static function log($data){return self::create($data, true);} }model <?phpnamespace app\admin\model;use ap…

ChatGPT漫谈(二)

ChatGPT“脱胎”于OpenAI在2020年发布的GPT-3,任何外行都可以使用GPT-3,在几分钟内提供示例,并获得所需的文本输出。GPT-3被认为是当时最强大的语言模型,但现在,ChatGPT模型似乎更强大。ChatGPT能进行天马行空的长对话,可以回答问题,它具备了类人的逻辑、思考与沟通的能…

【Matter】基于Ubuntu 22.04 编译chip-tool工具

前言 编译过程有点曲折&#xff0c;做下记录&#xff0c;过程中&#xff0c;有参考别人写的博客&#xff0c;也看github 官方介绍&#xff0c;终于跑通了~ 环境说明&#xff1a; 首先需要稳定的梯子&#xff0c;可以访问“外网”ubuntu 环境&#xff0c;最终成功实验在Ubunt…

组合API

组合API 1. 为什么要引入组合API2. setup()函数3. 响应式API3.1 reactive和watchEffect3.2 ref3.3 readonly3.5 watch 4. 生命周期钩子5. 依赖注入6. 逻辑提取和重用7. 小结 1. 为什么要引入组合API 组合API是Vue 3中引入的一种新的编程模式&#xff0c;它将组件的逻辑分散到多…

Linux 下centos 查看 -std 是否支持 C17

实际工作中&#xff0c;可能会遇到c的一些高级特性&#xff0c;例如std::invoke&#xff0c;此函数是c17才引入的&#xff0c;如何判断当前的gcc是否支持c17呢&#xff0c;这里提供两种办法。 1.根据gcc的版本号来推断 gcc --version&#xff0c;可以查看版本号&#xff0c;笔者…

数据结构【线性表】

数据结构入门级 第二章 线性表 一、线性表的定义和基本操作 线性表的定义&#xff1a;具有相同属性数据类型的数据元素组成的一个有限序列&#xff1b;除第一个元素外的元素都有直接前驱&#xff0c;除最后一个元素外的元素都有直接后继&#xff1b;存在一个唯一被称为“第一个…

从简单线性回归到TensorFlow深度学习

大家好&#xff0c;人工智能近年来变得越来越流行&#xff0c;学习人工智能的需求也随之增加&#xff0c;尤其是许多IT专业人士希望利用机器学习的强大功能&#xff0c;但面临不小的挑战&#xff0c;尤其是在理论和数学上。 步骤1&#xff1a;线性回归 线性回归是一种统计学中…

lucene、solr、es的区别以及应用场景

目录 1. Lucene:2. Solr:3. Elasticsearch: Lucene、Solr 和 Elasticsearch(ES) 都是基于 Lucene 引擎的搜索引擎&#xff0c;它们之间有相似之处&#xff0c;但也有一些不同之处。 Lucene 是一个低级别的搜索引擎库&#xff0c;它提供了一种用于创建和维护全文索引的 API&…

RNN架构解析——GRU模型

目录 GRU模型实现优点和缺点 GRU模型 实现 优点和缺点

【C语言day06】

逻辑或运算如果前表达式为真&#xff0c;后表达式不计算&#xff0c;第一次循环时i为0&#xff0c;执行i&#xff0c;第二次循环时i为1&#xff0c;是个真值&#xff0c;不再执行i&#xff0c;也就死循环了 在C语言中&#xff0c;一个函数如果不写返回值类型&#xff0c;那么就…

【MyBatis 学习三】子段不一致问题 多表查询 动态SQL

目录 一、解决Java实体类属性与数据库表字段不一致问题 &#x1f337;现象1&#xff1a;显示字段不对应&#xff1a;使用ResultType查询结果为null&#xff1b; &#x1f337;解决办法&#xff1a;字段不对应&#xff1a;使用ResultMap解决。 二、数据库的多表查询 &#…

Go整合ElasticSearch

go整合elasticsearch 基于docker搭建开发环境在开发之前我们首先需要借助docker来构建我们的开发环境,先创建一个文件名称为docker-compose.yaml, 里面写入下面的内容: ---version: "3"services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsea…

Centos 7 - Anaconda3 安装教程及报错集锦

序言 这里笔者下载清华镜像&#xff0c;总会有问题&#xff0c;例如 wget 下载报错 安全证书什么的&#xff0c;就算解决证书问题&#xff0c;还不能下载&#xff0c;直接报错 Forbidden 403 &#xff0c;但是中科大镜像就不会。 中科大镜像 1、报错 WARNING: cannot verify…

【Spring Cloud Alibaba】Sentinel运行原理

文章目录 前言1、基本原理2、SphU.entry()2.1、StringResourceWrapper2.2、Entry 3、entry.exit()4、Context 前言 本文基于sentinel-1.8.0版本 Sentinel 是面向分布式服务架构的流量控制组件&#xff0c;主要以流量为切入点&#xff0c;从限流、流量整形、熔断降级、系统负载保…