当前位置: 首页 > article >正文

数字证书_CA_详解

目录

一、数字证书简介

二、 CA(证书颁发机构)

(一) 证书链(信任链)

1. 根证书

2. 中间证书

3. 网站证书

(二) 抓包软件的证书链与信任机制

1. 抓包通信流程

2. 证书链伪造与信任验证流程

(三) 关于移动设备的CA


一、数字证书简介

数字证书就是网站的身份证 + 公钥、是用来证明身份搭建加密通道用的

证书通常包含以下信息:

  • 持有者的信息: 网站域名(最重要的)、组织名称(对于企业级证书)、地址等。
  • 公钥: 用于加密信息的密钥。
  • 颁发者信息: 签发该证书的证书颁发机构名称。
  • 有效期: 证书的生效日期和到期日期。
  • 数字签名: 由 CA 使用其私钥生成的签名,用于证明证书的真实性和完整性。浏览器可以用 CA 的公钥来验证这个签名。

二、 CA(证书颁发机构)

CA全称:Certificate Authority,即“证书颁发机构”,负责签发证书和提供背书服务的机构。

  • 签发: CA 生成一张新的证书,并用自己的私钥对其内容进行数字签名,正式颁布这个证书。
  • 背书: CA 用自己的名义担保:这个证书里的信息(比如域名、身份、公钥)是我验证过、我认可的。
  • 关于申请证书,有免费的CA(一般用于个人网站),有收费的CA(用于企业/银行等需高信任场景)。

注:CA(证书颁发机构)是一个角色,全球有很多个CA,任何合法的组织都可以成为 CA,只要它有能力签发并管理证书。

(一) 证书链(信任链)

注:如果证书链出现问题,客户端会提示证书不被信任等信息。

证书链:网站证书 → 中间证书 → 根证书。

验证过程

  • 客户端(浏览器)拿到网站证书,用中间证书的公钥验证它的签名。
  • 再用根证书的公钥验证中间证书的签名。
  • 最后确认根证书是否在客户端的信任列表中。

证书提供

  • 服务器:发送网站证书和中间证书。
  • 客户端:预装根证书,不需要服务器提供。

1. 根证书

根证书是信任链的起点,由根证书颁发机构自签名,客户端(浏览器)默认信任根证书

根证书预装在您的设备(比如电脑、手机的操作系统或浏览器)中,作为验证其他证书的“信任锚点”。

2. 中间证书

中间证书由根CA签发,授权给中间证书颁发机构,用来签发网站证书。

3. 网站证书

网站证书由中间CA签发,颁给具体的网站或服务器,包含网站的公钥和身份信息(如域名),用于加密通信和证明身份。

网站证书是你访问的网站拿给浏览器的“身份证”,里面包含网站域名、公钥等信息。

常见网站证书类型:

  • DV(域名验证证书)
    • 只验证域名所有权,比如你能证明你控制了 abc.com,就能签。
  • OV(组织验证证书)
    • 除了验证域名,还验证组织/企业的合法存在性和注册信息(工商注册、电话等)。
  • EV(扩展验证证书)
    • 最高级别验证,验证企业真实身份、营业执照、电话、注册地址等。
    • 部分浏览器(不同版本)会在地址栏显示“绿色锁”和公司名。

(二) 抓包软件的证书链与信任机制

1. 抓包通信流程

以访问 https://www.baidu.com 为例:

Burp Suite 在本地充当代理服务器,整个 HTTPS 抓包过程的核心通信路径如下:

  • 浏览器访问百度,实际连接的是本地的 BurpSuite 代理(如 127.0.0.1:8080)
    • 浏览器只与 Burp 通信,浏览器不与百度服务器做交互。
  • Burp 将请求转发给真实的百度服务器
  • 百度返回响应 → Burp 拦截并解析 → 再转发给浏览器
    • 浏览器收到的响应其实是 Burp 伪装百度发出的。

2. 证书链伪造与信任验证流程

由于浏览器访问的是 HTTPS,必须进行证书验证。流程如下:

  • 浏览器要求:提供 https://baidu.com 的合法证书
  • 但此时它连接的是 BurpSuite,不是百度。
  • Burp 动态生成伪造的“baidu.com”站点证书
    • 此证书由 Burp 内部的自签名 CA 生成(非真实百度证书)。
  • 浏览器校验证书的签发者
  • 若浏览器的CA中没有Burp自签名CA,浏览器就会提示:证书无效 / 连接不安全 / 无法建立安全连接等安全告警。

所以抓包软件一般都会有一个CA证书导入导出的功能。

(三) 关于移动设备的CA

安卓和苹果都把CA明确区分成了两种:

  • 系统 CA(System CA)
    • 出厂时就内置在操作系统里的根证书
    • 只能由厂商签名后刷入系统分区
    • 默认所有 App 都信任
    • 普通用户(非 root)无法修改或新增
  • 用户 CA(User CA)
    • 用户手动安装的证书(比如通过设置 → 安全 → 受信任凭据 → 用户)
    • 存在于用户空间

从 Android 7/ iOS 10 开始以后的版本,默认大部分APP不信任用户CA,所以即使把抓包软件的CA证书导入到手机中也没用除非是把证书装到了系统CA区(需要ROOT权限)

注:手机开启ROOT之后,也会遭受大部分APP限制,ROOT手机限制使用之类的。

相关文章:

数字证书_CA_详解

目录 一、数字证书简介 二、 CA(证书颁发机构) (一) 证书链(信任链) 1. 根证书 2. 中间证书 3. 网站证书 (二) 抓包软件的证书链与信任机制 1. 抓包通信流程 2. 证书链伪造与信任验证流程 (三) 关于移动设备的CA 一、数…...

衡量嵌入向量的相似性的方法

衡量嵌入向量的相似性的方法 一、常见相似性计算方法对比 方法核心原理公式优点缺点适用场景余弦相似度计算向量夹角的余弦值,衡量方向相似性,与向量长度无关。$\text{cos}\theta = \frac{\mathbf{a} \cdot \mathbf{b}}{\mathbf{a}\mathbf{b}欧氏距离计算向量空间中的直线距离…...

Python爬虫实战:Yelp餐厅数据采集完整教程

前言 在数据分析和商业智能领域,餐厅和商户信息的采集是一个常见需求。Yelp作为全球知名的本地商户评论平台,包含了大量有价值的商户信息。本文将详细介绍如何使用Python开发一个高效的Yelp数据爬虫,实现商户信息的批量采集。 技术栈介绍 …...

微服务常用日志追踪方案:Sleuth + Zipkin + ELK

在微服务架构中,一个用户请求往往需要经过多个服务的协同处理。为了有效追踪请求的完整调用链路,需要一套完整的日志追踪方案。Sleuth Zipkin ELK 组合提供了完整的解决方案 Sleuth:生成和传播追踪IDZipkin:收集、存储和可视化…...

API是什么意思?如何实现开放API?

目录 一、API 是什么 (一)API 的定义 (二)API 的作用 二、API 的类型 (一)Web API 1. RESTful API 2. SOAP API (二)操作系统 API (三)数据库 API …...

12.6Swing控件4 JSplitPane JTabbedPane

JSplitPane JSplitPane 是 Java Swing 中用于创建分隔面板的组件,支持两个可调整大小组件的容器。它允许用户通过拖动分隔条来调整两个组件的相对大小,适合用于需要动态调整视图比例的场景。 常用方法: setLeftComponent(Component comp)&a…...

Python训练第四十六天

DAY 46 通道注意力(SE注意力) 知识点回顾: 不同CNN层的特征图:不同通道的特征图什么是注意力:注意力家族,类似于动物园,都是不同的模块,好不好试了才知道。通道注意力:模型的定义和插入的位置通…...

C++编程——关于比较器的使用

注&#xff1a; 简单记录一下C里比较器的构建&#xff0c;常用于自定义 sort() 函数和优先队列的改写优先级。 简单构建比较器&#xff1a; sort() 函数&#xff1a; vector<int> arr;//(a, b) -> true : a < b //升序排列 bool compare(int a, int b) {retur…...

第2天:认识LSTM

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标 具体实现 &#xff08;一&#xff09;环境 语言环境&#xff1a;Python 3.10 编 译 器: PyCharm 框 架: pytorch &#xff08;二&#xff09;具体步骤…...

自动化提示生成框架(AutoPrompt)

自动化提示生成框架(AutoPrompt) 一、核心创新点 自动化提示生成框架(AutoPrompt) 创新本质:提出基于梯度引导搜索的自动化提示生成方法,替代人工设计模板的传统模式。技术路径: 将提示视为可训练的离散token序列,通过优化提示向量(prompt embedding)搜索语义空间。利…...

两轮自平衡机器人建模、LQR控制与仿真分析

以下是一个针对两轮自平衡机器人(平衡车) 的完整建模、控制设计与仿真分析报告,包含详细的理论推导、控制算法实现及Python仿真代码。 两轮自平衡机器人建模、LQR控制与仿真分析 1. 引言 两轮自平衡机器人是一种典型的欠驱动、非线性、不稳定系统,其动力学特性与倒立摆高度…...

在NLP文本处理中,将字符映射到阿拉伯数字(构建词汇表vocab)的核心目的和意义

一、词汇表的核心作用 ‌数值化表示‌ 将离散的文本字符转换为连续的数值索引&#xff0c;使计算机能够处理非结构化的语言数据57。例如&#xff1a; "中国" → 2"a" → 5 ‌统一输入格式‌ 不同长度的文本通过填充/截断转换为固定长度的数字序列&#xf…...

中国首套1公里高分辨率大气湿度指数数据集(2003~2020)

时间分辨率&#xff1a;月空间分辨率&#xff1a;100m - 1km共享方式&#xff1a;开放获取数据大小&#xff1a;34.79 GB数据时间范围&#xff1a;2003-01-01 — 2020-12-31元数据更新时间&#xff1a;2023-07-26 数据集摘要 中国首套1公里高分辨率大气湿度指数数据集&#xf…...

计算机视觉顶刊《International Journal of Computer Vision》2025年5月前沿热点可视化分析

追踪计算机视觉领域的前沿热点是把握技术发展方向、推动创新落地的关键&#xff0c;分析这些热点&#xff0c;不仅能洞察技术趋势&#xff0c;更能为科研选题和工程实践提供重要参考。本文对计算机视觉顶刊《International Journal of Computer Vision》2025年5月前沿热点进行了…...

python学习打卡day45

DAY 45 Tensorboard使用介绍 知识点回顾&#xff1a; tensorboard的发展历史和原理tensorboard的常见操作tensorboard在cifar上的实战&#xff1a;MLP和CNN模型 效果展示如下&#xff0c;很适合拿去组会汇报撑页数&#xff1a; 作业&#xff1a;对resnet18在cifar10上采用微调策…...

JAVA元编程

一、引言&#xff1a;元编程的本质与 Java 实现 元编程&#xff08;Metaprogramming&#xff09;是一种 “操纵程序的程序” 的编程范式&#xff0c;其核心思想是通过代码动态操作代码本身。在 Java 中&#xff0c;元编程主要通过 ** 反射&#xff08;Reflection&#xff09;、…...

Verilog编程技巧01——如何编写三段式状态机

前言 Verilog编程技巧系列文章将聚焦于介绍Verilog的各种编程范式或者说技巧&#xff0c;编程技巧和编程规范有部分重合&#xff0c;但并非完全一样。规范更注重编码的格式&#xff0c;像变量命名、缩进、注释风格等&#xff0c;而编程技巧则更偏重更直观易读、更便于维护、综合…...

智启未来:当知识库遇见莫奈的调色盘——API工作流重构企业服务美学

目录 引言 一、初识蓝耘元生代MaaS平台 1.1 平台架构 1.2 平台的优势 1.3 应用场景 二、手把手教你如何在蓝耘进行注册 &#xff08;1&#xff09;输入手机号&#xff0c;将验证码正确填入即可快速完成注册 &#xff08;2&#xff09;进入下面的页面表示已经成功注册&…...

java教程笔记(十一)-泛型

Java 泛型&#xff08;Generics&#xff09;是 Java 5 引入的重要特性之一&#xff0c;它允许在定义类、接口和方法时使用类型参数。泛型的核心思想是将类型由具体的数据类型推迟到使用时再确定&#xff0c;从而提升代码的复用性和类型安全性。 1.泛型的基本概念 1. 什么是泛…...

JUnit​​ 和 ​​Mockito​​ 的详细说明及示例,涵盖核心概念、常用注解、测试场景和实战案例。

一、JUnit 详解 1. JUnit 核心概念 ​​测试类​​&#xff1a;以 Test 结尾的类&#xff08;或通过 Test 注解标记的方法&#xff09;。​​断言&#xff08;Assertions&#xff09;​​&#xff1a;验证预期结果与实际结果是否一致&#xff08;如 assertEquals()&#xff0…...

【Go语言基础【7】】条件语句

文章目录 零、概述一、if 条件语句1. 单条件模型2. 多条件模型&#xff08;else if&#xff09;3. 条件嵌套与优化 二、switch 条件判断1. 基本用法2. fallthrough 穿透执行3. break 终止执行 零、概述 语句类型适用场景核心特点if-else单条件或简单多条件判断逻辑清晰&#x…...

【Python 算法零基础 4.排序 ⑪ 十大排序算法总结】

目录 一、选择排序回顾 二、冒泡排序回顾 三、插入排序回顾 四、计数排序回顾 五、归并排序回顾 六、快速排序回顾 七、桶排序回顾 八、基数排序 九、堆排序 十、希尔排序 十一、十大排序算法对比 十二、各算法详解与应用场景 1. 选择排序&#xff08;Selection Sort&#xff…...

解决神经网络输出尺寸过小的实战方案

训练CIFAR10分类模型时出现报错&#xff1a;RuntimeError: Given input size: (256x1x1). Calculated output size: (256x0x0). Output size is too small。该问题由网络结构设计缺陷导致图像尺寸过度缩小引发。 核心原因分析 网络结构缺陷 原始模型采用六层卷积层&#xff0c…...

Python备忘

1. 自定义多线程程序&#xff1a; import concurrent.futures import threadingclass CustomThreadPool:def __init__(self, max_workers):self.max_workers max_workersself.pool concurrent.futures.ThreadPoolExecutor(max_workers)self.running_num 0self.semaphore t…...

如何在 Windows 11 中永久更改默认浏览器:阻止 Edge 占据主导地位

在 Windows 11 中更改默认浏览器对于新手或技术不太熟练的用户来说可能会令人沮丧。 为什么要在 Windows 11 中更改默认浏览器? 这是一个重要的问题:你为什么要从 Microsoft Edge 切换过来? 生态系统集成:如果你已经在广泛使用 Google 服务,Chrome 可以提供无缝集成。同…...

量子比特实现方式

经典计算机是通过电子电路运转起来的。使用硅制半导体制成的名为晶体管的小元件发挥了开关的作用&#xff0c;将其与金属布线组合起来即可实现逻辑门&#xff0c;再将逻辑门集成起来就能制造出经典计算机。量子计算机的制造过程则要复杂许多&#xff0c;因为量子计算机既需要量…...

智慧水务发展迅猛:从物联网架构到AIoT系统的跨越式升级

AI大模型引领智慧水务迈入新纪元 2025年5月25日&#xff0c;水利部自主研发的“水利标准AI大模型”正式发布&#xff0c;它标志着水务行业智能化进程的重大突破。该模型集成1800余项水利标准、500余项法规及海量科研数据&#xff0c;支持立项、编制、审查等全流程智能管理&…...

1、cpp实现Python的print函数

实现一 #include <iostream> #include <list> #include <string>using namespace std;// 定义一个空的print函数&#xff0c;作为递归终止条件 void print(){// };// 可变参数模板函数&#xff0c;用于递归输出传入的参数 template <typename T, typenam…...

【Linux基础知识系列】第十四篇-系统监控与性能优化

一、简介 随着信息技术的飞速发展&#xff0c;Linux系统在服务器领域占据着重要地位。无论是web服务器、数据库服务器还是文件服务器&#xff0c;都需要高效的运行以满足业务需求。系统监控与性能优化是确保Linux系统稳定、高效运行的关键任务。通过实时监测系统资源的使用情况…...

云原生思维重塑数字化基座:从理念到实践的深度剖析

&#x1f4dd;个人主页&#x1f339;&#xff1a;慌ZHANG-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 一、引言&#xff1a;云原生为何成为数字化的“基础设施语言”&#xff1f; 随着5G、人工智能、物联网等技术逐步进入规模化落地阶段&am…...