HTTPS是怎么建⽴连接的(通俗易懂版)

news2024/9/21 4:33:26

首先了解HTTPS的构造,如下图所示:

SSL/TLS 协议基本流程:
  • 客户端向服务器索要并验证服务器的公钥。
  • 双⽅协商⽣产「会话秘钥」。
  • 双⽅采⽤「会话秘钥」进⾏加密通信。

 HTTPS建立连接的具体流程如下:

  1. ⾸先,客户端向服务器端发送加密通信请求,也就是 ClientHello 请求,请求与服务端建⽴连接。
  2. 服务端产⽣⼀对公私钥,然后将⾃⼰的公钥发送给CA机构,CA机构也有⼀对公私钥,然后CA机构使⽤⾃⼰的 私钥将服务端发送过来的公钥进⾏加密,产⽣⼀个CA数字证书。
  3. 服务端响应客户端的请求,也就是 SeverHello , 将CA机构⽣成的数字证书发送给客户端。
  4. 客户端将服务端发送过来的数字证书进⾏解析(因为浏览器产商跟CA机构有合作,所以浏览器中已经保存了⼤部分CA机构的密钥,⽤于对服务端发送过来的数字证书进⾏解密),验证这个CA数字证书是否合法,如果不合法,会发送⼀个警告。如果合法,从数字证书中取出服务端⽣成的公钥。
  5. 客户端取出公钥并⽣成⼀个随机码key(其实就是对称加密中的密钥)
  6. 客户端将加密后的随机码key发送给服务端,作为接下来的对称加密的密钥
  7. 服务端接收到随机码key后,使⽤⾃⼰的私钥对它进⾏解密,然后获得到随机码key
  8. 服务端使⽤随机码key对传输的数据进⾏加密,在传输加密后的内容给客户端
  9. 客户端使⽤⾃⼰⽣成的随机码key解密服务端发送过来的数据,之后,客户端和服务端通过对称加密传输数据,随机码Key作为传输的密钥

 

其中的证书信任链

证书信任链( Certificate Trust Chain )是数字证书的验证过程中的⼀部分,确保数字证书是由可信的证书颁发机 构(CA )签发的,并最终连接到根证书,形成⼀条链条。
1. 根证书 :信任链的顶端是根证书( Root Certificate ),也称为根 CA 证书。根证书是数字证书体系中的根基, 它由操作系统或浏览器内置,作为信任的起点。
2. 中间证书颁发机构( Intermediate CA :在信任链中,根证书下⽅可能有⼀个或多个中间 CA ,也称为中间 证书颁发机构。这些中间CA 的数字证书由根 CA 签发,它们作为信任链中的中继,⽤于签发其他证书。
3. 服务器证书 :在最底层是服务器的数字证书,它是由中间 CA 签发的,包含了服务器的公钥和相关信息。服务 器证书需要在客户端验证的过程中被验证。
证书验证过程中,客户端会依次验证服务器证书、中间 CA 的证书、根 CA 的证书。如果整个链条中的所有证书都可以被成功验证,那么数字证书被视为合法和可信的。相反,如果任何⼀个证书⽆法验证,整个信任链就会被打断, 数字证书将被视为不合法或不可信的。

 

 

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

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

相关文章

电商产品摄影福音!AI绘画 ComfyUI 产品摄影工作流 (自定义产品位置并保留细节),再也不用请摄影师了!

大家好,我是画画的小强 今天,我将介绍一个最新开发的 AI绘画 的产品摄影ComfyUI工作流。只需要提供一张产品图片,然后用提示词描述你想要的画面,就可以生成一张效果非常自然的产品摄影图片。 本次教程所用到的工作流我已经准备好…

一机两用的简单介绍

电子政务外网终端使用过程的风险与挑战 1、终端防护弱,失陷风险大 政务外网终端具备访问互联网能力,造成政务外网终端极易感染僵木蠕病毒,破坏正常办公 政务外网终端易被攻击失陷,成为从互联网攻击政务外网的跳板机 2、VPN漏洞…

资源覆盖机制在安卓中的应用

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 什么是资源覆盖(Resource Overlay)? 资源覆盖的分类 静态资源覆盖(SRO&#…

linux crontab没有按照规则执行排查

配置了cron规则,但是一段时间后任务没有按预期执行,记录一次修复过程 检查crond服务 systemctl status crond规则正常 crontab -l脚本有执行权限 查看日志 第一种:journalctl journalctl -u crond | grep 03:00 -C 3-u 指定crond.serv…

【小塔 | 解锁时尚行业RFID魅力值】

从奢侈品牌到快时尚,越来越多的时尚品牌开始选择RFID技术,RFID标签与货品结合到一起,在客户体验、货品溯源、货品防伪、货品调度、库存盘点等方面做到了极致。 大众熟知的迪卡侬、耐克、阿迪达斯、Zara、优衣库、海澜之家等品牌早在前几年就已…

Python06:分支结构if else

分支结构: 代码中有多条执行路径,但是只有其中一条会被执行 """ eg03 - 分支结构(选择结构)的例子 代码中有多条执行路径,但是只有其中一条会被执行 admin Admin123!! Author: mimo_yy Date: 2024/5/14 "&qu…

安装TrinityCore wow服务器注册管理软件WoWSimpleRegistration-2:解决图片显示和多区问题

WoWSimpleRegistration官网: GitHub - masterking32/WoWSimpleRegistration: Simple Registration page for TrinityCore/AzerothCore/AshamaneCore/CMangos WoWSimpleRegistration支持TrinityCore和AzerothCore,安装方法见:Nginx配置php起…

【C++】优先级队列(容器适配器)

欢迎来到我的Blog,点击关注哦💕 前言 string vector list 这种线性结构是最基础的存储结构,C(STL)container很好的帮助我们数据存储的问题。 容器适配器 介绍 容器适配器是C标准模板库(STL)中…

sqllabs游戏

文章目录 总体思路:less-1:less-2:less-3:less-4:less-5:less-6:less-7:less-8:布尔盲注less-9:时间盲注less-21:less-24: 总体思路: 1、第一件事情 逃脱出单引号的控制 闭合单引号 2、单双引号需要成对出现 在python php Java中 3、2个办法 继续把多出…

linux文件命令:更新文件时间戳的工具touch详解

目录 一、概述 二. touch 命令的基本用途 三. touch 命令的语法 3.1、语法 3.2、touch 命令的选项 3.3、时间字符串格式 四. 常用场景 4.1 创建空文件 4.2 同时创建多个文件 4.3 更新文件的时间戳 4.4 只更新访问时间 4.5 只更新修改时间 4.6 设置特定时间戳 4.7 使用另…

入职一年半,这个AI员工晋升为了国内首位AI架构师

你敢想,AI 已经不满足只做程序员了,如今又向架构师这一进阶职业发起挑战。 随着 AI 在研发领域的不断进化,能提供给工程师的助力越来越多,从原先单纯的编码加速器不断延展到架构理解、质量分析、安全扫描、测试生成等更多领域。同…

9.1 迭装饰器的定义与使用:给你的 Python 代码加点“魔法”

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

JDBC在java代码中的使用

声明 对于数据库的增删改查,在使用jdbc的过程中分二类,查(DQL)语句和增,删,改(DML语句) 他们的整体都分为以下五部分,只是DQL语句多了数据的处理部分。 在使用之前需要…

首屏优化之:import 动态导入

前言 前面我们聊过可以通过不太的 script 属性比如 defer,async 来实现不同的加载效果,从而实现首屏优化,没看的朋友可以看一下:。 今天我们来聊一下动态导入之 import,当然 import 动态导入也不是一把梭的&#xff…

我们需要提高人工智能产品经理的标准

如何停止指责“模型”并开始构建成功的人工智能产品 产品经理负责决定开发什么,并对决策结果负责。这适用于所有类型的产品,包括由人工智能驱动的产品。然而,在过去十年中,产品经理将人工智能模型视为黑匣子是一种常见做法&#x…

如何在 CI/CD 过程中实施高效的自动化测试和部署

文章目录 摘要引言选择适合的 CI/CD 工具常见 CI/CD 工具选择依据 配置自动化构建和测试流程Jenkins示例 制定测试策略单元测试集成测试系统测试 确保部署环境的稳定性蓝绿部署 未来展望总结参考资料 摘要 在持续集成(CI)和持续交付(CD&…

SemanticKernel/C#:实现接口,接入本地嵌入模型

前言 本文通过Codeblaze.SemanticKernel这个项目,学习如何实现ITextEmbeddingGenerationService接口,接入本地嵌入模型。 项目地址:https://github.com/BLaZeKiLL/Codeblaze.SemanticKernel 实践 SemanticKernel初看以为只支持OpenAI的各…

(24)(24.2) Minim OSD快速安装指南(一)

文章目录 前言 1 概述 2 基本接线图 3 关键冷却条件的可选设置 4 固件可用于MinimOSD 5 MWOSD 前言 MinimOSD “屏幕显示”是一个小型电路板,它从你的自动驾驶仪中提取遥测数据,并将其覆盖在你的第一人称视图监视器上(First Person View)。Minim …

发布包到npm

目录 注册npm账号 创建包 登录npm 上架包 更新包 删除包 注册npm账号 首先注册npm账号:npm | Sign Up (npmjs.com) 创建包 可以在桌面上新建一个文件夹:文件夹名随便起,但是别跟npm已经上架的包名重复了 可以通过下面的指令查看&…

【小记】这也算是经验分享了吧~

最近在进行跳槽的一些准备,从简历制作、投递简历、准备面试、视频面试、线下面试、接受录取、辞职准备,每一个过程都超级紧张刺激 大学的时候就有一些制作PPT的经验,靠这个收入了一点点,进而对于office这一系列的操作还是比较熟悉…