域名证书,泛域名证书,sni

devtools/2024/9/25 8:34:25/

文章目录

  • 前言
  • 一、证书
    • 1.全域名证书
    • 2.泛域名证书
  • 二、域名证书的使用
    • 1、浏览器请求域名证书流程
      • 对全域名证书的请求流程
      • 对泛域名证书的请求流程
      • ssl client-hello携带server name 报文
    • 2、浏览器对证书的验证流程
  • 三、域名证书和sni


前言


本文介绍了泛域名证书和全域名证书的区别和使用情况,以及sni的原理。

一、证书

1.全域名证书

域名证书的使用者CN字段和使用者可选名称DNS Name字段没有包含*,该类证书一般是一个证书对应一个网站的ip地址,对应一个或者多个域名(一个证书的DNS Name里面可以包含多个全域名)。
CN字段对应浏览器访问的域名。
https://i-blog.csdnimg.cn/direct/801427ab29b042ff951b5b6921c70539.png" alt="在这里插入图片描述" />
DNS Name字段是对CN字段的补充,DNS Name字段可以包含多个域名,浏览器也可以访问DNS Name里面的域名。
https://i-blog.csdnimg.cn/direct/0a5ad99b1bcb49faa140f3f92f90c731.png" alt="在这里插入图片描述" />

2.泛域名证书

域名证书的使用者CN字段和使用者可选名称DNS Name字段包含*,该类证书可以给多个不同的Ip使用,每个ip又可以对应多个域名。
例如: *.csdn.net 中的 *可以是任意内容,a.csdn.net和b.csdn.net都能返回该证书。
但是a.b.csdn.net就不能匹配 *.csdn.net,他只能匹配 *.b.csdn.net。所以泛域名证书 * 只能包含一级域名。
https://i-blog.csdnimg.cn/direct/750e348c4e5f4e00b841dfefe7bfd3eb.png" alt="在这里插入图片描述" />

https://i-blog.csdnimg.cn/direct/6927d7d3c73c4b1791f167dfc814c594.png" alt="在这里插入图片描述" />

二、域名证书的使用

1、浏览器请求域名证书流程

对全域名证书的请求流程

浏览器将域名封装在ssl client hello报文的扩展项server name中,服务器对域名证书进行匹配,返回域名对应的证书,这就是sni。
https://i-blog.csdnimg.cn/direct/080ead077da5481cbfd18b1e9fc9cd46.png" alt="在这里插入图片描述" />

对泛域名证书的请求流程

不同的ip 可以导入同一个泛域名证书,通过DNS域名解析就能访问指定的网站。泛域名证书能够减少证书的签发,某一类服务都可以只用一个泛域名证书。
https://i-blog.csdnimg.cn/direct/afe16cec7fe345259147bb64380b76b3.png" alt="在这里插入图片描述" />

ssl_clienthelloserver_name__34">ssl client-hello携带server name 报文

https://i-blog.csdnimg.cn/direct/e601e7fcebdf49acb91aead4dc90e9fc.png" alt="在这里插入图片描述" />

2、浏览器对证书的验证流程

1.证书是否可信
服务器返回证书和证书链,浏览器从自己的内置ca或者从windows等系统的内置ca中通过证书的签发者名称找到对应的根证书,通过证书的公钥对下一级证书进行验签,一直追溯到根证书则证书可信。
2.证书有效性
包括证书是否过期、是否被吊销、密钥长度是否安全、使用的相关算法是否安全。
3.证书域名是否匹配
通过浏览器访问的域名比较CN字段和DNS Name字段看是否匹配。

三、域名证书和sni

“SNI"通常指的是"Server Name Indication”,它是一个扩展的TLS/SSL协议功能,用于告知服务器客户端想要连接到哪个特定网站。这对于在同一个IP地址上托管多个安全网站(具有不同的主机名)是必要的。
SNI解决了在同一IP地址上使用多个SSL证书的问题,允许用户通过一个IP地址访问多个加密的HTTP服务。没有SNI,每个域名都需要一个专用的IP地址才能拥有自己的SSL证书。


http://www.ppmy.cn/devtools/105565.html

相关文章

Spring Boot 入门

1.1.1 什么是Spring Boot Spring Boot是一个开源的Java应用框架,由Pivotal团队提供,旨在简化Spring应用的初始搭建以及开发过程。‌ Spring Boot通过使用特定的配置方式,使得开发人员不再需要定义样板化的配置,从而在快速应用开发…

使用 Pandas 进行数据可视化:全面指南(六)

在数据分析的过程中,数据的可视化是一个至关重要的环节。通过图形展示数据,不仅能够帮助我们直观地理解数据,还能够揭示数据背后的规律和趋势。Pandas 作为 Python 生态系统中强大的数据分析库,不仅提供了数据处理和分析的功能,还内置了方便易用的可视化方法。本文将详细介…

k8s-pod 实战六 (如何在不同的部署环境中调整startupprobe的参数?)

在不同的部署环境中(如开发、测试、生产环境),你可能希望对 startupProbe 的参数进行调整,以适应不同的需求和条件。以下是几种常见的方法和实践: 方法一:使用 Kustomize 1. 目录结构 假设你的项目目录结构如下: my-app/ ├── base/ │ └── deployment.yaml …

C++单例模式

文章目录 设计模式单例模式饿汉模式懒汉模式 设计模式 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模…

音视频解码 AVIO内存输入模式

原因 根据下文,我们已经学会了如何从本地文件读取数据,对音视频进行解码操作得到原始数据。 ffmpeg 音视频解码-CSDN博客 现在有一个需求,网络读取到的数据,也就是内存数据如何直接进行解码操作? 本文就是介绍解决…

Linux Kernel 6.12版预计将支持在崩溃后显示二维码 后续可以解码排查错误

7 月份时红帽工程师基于 systemd 255 版的全屏显示错误消息功能为 Linux Kernel 开发崩溃后显示二维码选项,这与微软在 Windows 10/11 蓝屏死机后显示二维码有异曲同工之妙。 不过 Linux 与 Windows 在崩溃时显示的二维码内容则有本质区别,因为 Window…

景联文科技:专业视频标注服务助力计算机视觉应用升级

视频标注是指对视频内容进行分析,并在视频中的特定对象、行为或事件上添加标签的过程。 视频标注包括: 1. 对象检测与跟踪 •对象检测:在每一帧中识别并定位特定的对象,如人、车、动物等。 •对象跟踪:跟踪这些对象…

牛客(数字统计)

[NOIP2010]数字统计 题目题解(77)讨论(41)排行面经 new 时间限制:1秒 空间限制:128M 知识点NOIP复赛字符串 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。 描述 请统计…