基础架构部文档
基础架构部文件格式标准参考
技术文档
mr_doc 接入ucenter 认证登录
loki日志收集
https证书与ssl/tls 加密
FTP 主动模式和被动模式的区别
Hadoop-windows10安装部署Hadoop2.7.3
JKS和PFX证书文件格式相互转换方法
KVM 基础操作
k8s nginx ingress日志收集到ELK并分析
Django基础
clash http代理 socks代理服务器搭建 配置
Ubuntu 22.04 安装 FFmpeg v7.0
Office正版化项目的个人体验和心得
重置jenkins构建历史
K8S实施方案
k8s的yaml文件语法
Docker的优势与虚拟机的区别
问题处理文档
HR推送数据问题处理报
Nginx从入门到放弃01-nginx基础安装
Nginx从入门到放弃02-Nginx基本命令和新建WEB站点
Nginx从入门到放弃03-Nginx调优
Nginx从入门到放弃04-Nginx的N种特别实用示例
JMeter教程
01-mariadb编译安装
02-mariadb二进制安装
Docker修改默认的存储路径
01-influxdb2时序数据库简介及安装
02-influxdb2时序数据库核心概念
03-influxdb2时序数据库flux查询语言
04-influxdb2--Python客户端influxdb-client
05-Spring boot 集成influxdb2
06-influxdb2其他知识
OA添加waf后相关问题的解决过程
排除java应用cpu使用率过高
exsi迁移文档
视频测试
阿里云产品试题
超融合服务器和传统服务器的区别
Serv-U问题集锦
文件夹共享操作手册
磁盘脱机处理方案
Office内存或磁盘空间不足处理方法
Cmd中ping不是内部或外部命令的解决方法
ELK 搭建文档
限制用户的远程桌面会话数量
Docker快速安装rocketmq、redis、zookeeper
超融合建设方案
git 入门
HR系统写入ES数据报错403
ELK搭建文档
KVM 安装和基础使用文档
helm 安装 rancher
访问共享提示禁用当前用户解决方法
K8S StorageClass搭建
KVM 扩展磁盘
借助sasl构建基于AD用户验证的SVN服务器
fastdfs编译安装并迁移数据
关闭系统保护的必要性
SCF 前置机部署
阿里云OSS学习文档
阿里云学习文档-VPC
(k8s踩坑)namespace无法删除
rancher-helm安装
zookeeper集群安装
批量替换K8s secrets 中某个特定域名的tls证书
kibana 批量创建索引模式
centos7 恢复Yum使用
ACP云计算部分知识点总结
Loki 日志系统搭建文档
自动更新k8s集群中所有名称空间中特定证书
AI分享
(AI)函数调用与MCP调用的区别
安装戴尔DELL Optilex 7040 USB驱动时提示无法定位程序输入点 kernel32\.dll
新华三服务器EXSI 显卡直通
本文档使用「觅思文档专业版」发布
-
+
首页
https证书与ssl/tls 加密
# https证书与ssl/tls 加密 ## 浏览器里输入https链接后发生了什么 1、浏览器地址栏中输入https地址 2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。 3、在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址。 4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手。 5、握手成功后,浏览器向服务器发送ssl/tsl连接请求 6、加密通道建立完成后,浏览器向服务器发送http请求,请求数据包。 6、服务器处理收到的请求,将数据返回至浏览器 7、浏览器收到HTTP响应 8、读取页面内容,浏览器渲染,解析html源码,展示页面内容 ## http协议 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在[TCP](https://baike.baidu.com/item/TCP/33012)之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 ## https协议 HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和[身份认证](https://baike.baidu.com/item/身份认证/5294713)保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入[SSL](https://baike.baidu.com/item/SSL/320778),HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 [TCP](https://baike.baidu.com/item/TCP/33012) 之间)。 SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是HTTP+SSL/TCP的简称,Https默认使用端口443。 HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用 SSL(Secure Socket Layer)和 TLS(Transport Layer Security)协议代 替而已。 通常,HTTP 直接和 TCP 通信。当使用 SSL时,则演变成先和 SSL通 信,再由 SSL和 TCP 通信了。简言之,所谓 HTTPS,其实就是身披 SSL协议这层外壳的 HTTP。     ## 对称加密 对称加密: 加密密钥和解密密钥相同 对称加密:也称为对称密码,是指在加密和解密时使用同一[密钥](https://so.csdn.net/so/search?q=密钥&spm=1001.2101.3001.7020)得加密方式  ## 非对称加密 非对称加密: 加密密钥和解密密钥不相同 加密秘钥和解密秘钥是一个秘钥对 分发给客户的叫公钥 服务端留存的叫私钥 用公钥加密的数据,公钥解不了密,只有用私钥才能解密  ### 非对称加密原理 数学原理 非对称加密来源于数学中的大质因数分解很难的问题,基于欧几里得的证明, 每个数只有一种质因数分解, 一个大整数分解成一堆质数很难。 ```shell 第一步,取两个互质的整数 p,q(就是两个数除了一个公共因子1外就没有其他的公共因子了) 在这里我取p=3,q=5 第二步 取s作为p和q的乘积 所以 s=p*q=15 取s1作为(p-1)和(q-1)的乘积 所以s1=2*4=8 (这个s1就是公钥和私钥的组成成分之一) 接下来在区间(1,s1)之间取一个与s1互质的整数e 这里我取e为3 (这个e就是公钥的组成成分之一) 根据公式(e*d)mod(s1)=1 求出d的值 3*d mod 8=1 解的到d可取3.(这个d就是私钥的组成成分) 所以我们就解得了 公钥(s,e)=(15,3) 私钥(s,d)=(15,3) ``` ```shell 加密过程: 对数字m用公钥(s,e)进行加密得到密文t: (s,e)=(15,3),为简单起见设m=7 m^e mod s =t 所以7^3 % 15=13 ==》t=13 解密过程: 对密文t用私钥(s,d)进行解密得解密文m' t^d mod s=m' 13^3 % 15=7 所以m'=m=7,加密后的密文可以被顺利解密 ``` ```shell 看看能否将一个公钥获得私钥 首先列举上面我们已经提到过的参数 质数 p,q 两质数乘积 s (s=p*q) 中间数s1 (s1=(p-1)*(q-1)); 公钥的组成成分e 私钥的组成成分d 现在我们罗列下相应的数学关系式 s=p*q (p,q两个数互为质数) s1=(p-1)*(q-1) e*d %s1=1 (1<e<s1且与s1互为质数) 现在已经知道公钥(s,e),看看能否得到私钥成分d 要求到d,必须要求到s的两个质数q,p。 但是q和p这两个质数能够从s中分解出来吗,事实上,数值小的s能 被分解,随着数值s越来越大,分解成两个质数的难度也越来越大, 理论上以现阶段的的计算能力,RSA算法被破解的可能性为0. 例如s=1347318956317465198736981346571346759136498561347 341876534865239745634629384658293765293402340523485632 324593465938746598340234752384750923847523845723084572 613946237965139846136236473649182736481329613769238761 1236498134751305713752937513075283753104570381571232…… 然后如何将其分解为一对互质的p和q呢? ``` 简化原理 混合颜色是一个单向函数, 两个颜色混合输出第三种颜色很简单, 但是反过来就很难。 首先了解一下什么是互补色:每个颜色都有一个互补色,两个互补色叠加得到白光。 张三选了两个互补的颜色, 将其中一个作为公钥发给李四 李四选了一个颜色, 他将这个颜色和张三混合色的颜色发给张三 张三使用自己保留的颜色,叠加到李四的混合色上面。就得到了李四的颜色。 即使李四混合后的颜色被别人知道了, 也很难破译出李四的颜色。 ## 非对称加密的安全性 ### 大质数的因式分解 随着计算机算力的不断提升,穷举法 ### SSL中间人攻击 那就是无法证明 公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器 建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原 本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真 正的公开密钥已经被攻击者替换掉了。 这种SSL中间人攻击,攻击者和靶机,攻击者和服务器之间都是建立的HTTPS可信链接,只是通过OPENSSL生成自签名的证书,利用用户不仔细查看证书的不小心,来进行证书劫持,从而获取到https网站内的敏感信息。   ## CA证书 "证书 -- 为公钥加上数字签名" 公钥证书(Public-Key Certificate,PKC)其实和驾照很相似,里面记有姓名、组织、邮箱地址等个人信息,以及属于此人的公钥,并由认证机构(Certification Authority、Certifying Authority, CA)施加数字签名。只要看到公钥证书,我们就可以知道认证机构认定该公钥的确属于此人。公钥证书也简称为证书(certificate)。 就跟我们的身份证一样,由ca就是国家,你去做高铁,高铁站就用身份证确定了你是你。 证书格式 ```shell 前使用最广泛的标准为ITU和ISO联合制定的X.509的 v3版本规范 (RFC5280), 其中定义了如下证书信息域: 版本号(Version Number):规范的版本号,目前为版本3,值为0x2; 序列号(Serial Number):由CA维护的为它所发的每个证书分配的一的列号,用来追踪和撤销证书。只要拥有签发者信息和序列号,就可以唯一标识一个证书,最大不能过20个字节; 签名算法(Signature Algorithm):数字签名所采用的算法,如: sha256-with-RSA-Encryption ccdsa-with-SHA2S6; 颁发者(Issuer):发证书单位的标识信息,如 ” C=CN,ST=Beijing, L=Beijing, O=org.example.com,CN=ca.org。example.com ”; 有效期(Validity): 证书的有效期限,包括起止时间。 主体(Subject) : 证书拥有者的标识信息(Distinguished Name),如:" C=CN,ST=Beijing, L=Beijing, CN=person.org.example.com”; 主体的公钥信息(SubJect Public Key Info):所保护的公钥相关的信息: 公钥算法 (Public Key Algorithm)公钥采用的算法; 主体公钥(Subject Unique Identifier):公钥的内容。 颁发者唯一号(Issuer Unique Identifier):代表颁发者的唯一信息,仅2、3版本支持,可选; 主体唯一号(Subject Unique Identifier):代表拥有证书实体的唯一信息,仅2,3版本支持,可选: 扩展(Extensions,可选): 可选的一些扩展。中可能包括: Subject Key Identifier:实体的秘钥标识符,区分实体的多对秘钥; Basic Constraints:一指明是否属于CA; Authority Key Identifier:证书颁发者的公钥标识符; CRL Distribution Points: 撤销文件的颁发地址; Key Usage:证书的用途或功能信息。 此外,证书的颁发者还需要对证书内容利用自己的私钥添加签名, 以防止别人对证书的内容进行篡改。 ``` 证书的信任链 证书直接是可以有信任关系的, 通过一个证书可以证明另一个证书也是真实可信的. 实际上,证书之间的信任关系,是可以嵌套的。比如,C 信任 A1,A1 信任 A2,A2 信任 A3…这个叫做证书的信任链。只要你信任链上的头一个证书,那后续的证书,都是可以信任滴。 假设 C 证书信任 A 和 B;然后 A 信任 A1 和 A2;B 信任 B1 和 B2。则它们之间,构成如下的一个树形关系(一个倒立的树)。   1)客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。 2)服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书 3)客户端使用服务端返回的信息验证服务器的合法性,包括: 证书是否过期 发行服务器证书的CA是否可靠 返回的公钥是否能正确解开返回证书中的数字签名 服务器证书上的域名是否和服务器的实际域名相匹配 验证通过后,将继续进行通信,否则,终止通信 6)客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择 7)服务器端在客户端提供的加密方案中选择加密程度最高的加密方式,返回给客户端 9)客户端收到服务端返回的加密方案密文后,产生该加密方式的随机码,用作加密过程中的密钥,使用之前从服务端证书中获取到的公钥进行加密后,发送给服务端 10)服务端收到客户端发送的消息后,使用自己的私钥进行解密,获取对称加密的密钥,在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。 ## TLS握手过程  ## 扩展 ### ssl/tls证书类别 各种类别的证书在浏览器中的表现(截图) SSL证书的类型大类上其实就三种类型来区分。不同类型的SSL证书具有不同的验证级别。**主要认证级别类型是:** ### 扩展验证证书(EV SSL)  极为严格的SSL证书,这是SSL证书中排名最高和最昂贵的类型。它往往用于收集数据并涉及在线支付的知名网站。安装后,此SSL证书会在浏览器地址栏上显示挂锁、HTTPS、企业名称和国家/地区。在地址栏中显示网站所有者的信息有助于将网站与恶意网站区分开来。要设置EV SSL证书,网站所有者必须经过标准化的身份验证流程,以确认他们已合法获得该域名的专有权利。 ### 组织验证证书(OV SSL)  此版本的SSL证书具有与EVSSL证书类似的保证级别,因为获得了一个网站所有者需要完成大量的验证过程。此类证书还在地址栏中显示网站所有者的信息,以区分恶意网站。OV SSL证书往往是第二昂贵的(仅次于EV SSL),它们的主要目的是在交易期间加密用户的敏感信息。商业或面向公众的网站必须安装OV SSL证书,以确保共享的任何客户信息保持机密。 ### 域名验证证书(DV SSL)  获得这种SSL证书类型的验证过程是最少的,因此,域名验证SSL证书提供的保证和加密最少。它们往往用于博客或信息网站,既不涉及数据收集或在线支付的网站。此SSL证书类型是获得成本最低且最快的证书类型之一。验证过程只要求网站所有者通过回复电子邮件或电话来证明域所有权。浏览器地址栏只显示HTTPS和一个不显示企业名称的挂锁。 ### 单域名SSL 这是最常规的SSL证书类型,因为他仅限于保护一个全域名,所以他必须明确确定一个主域名或者子域名才可以申请,一本证书的功能也很单一。 ### 通配符SSL证书 通配符SSL证书允许您在单个证书上保护基本域名和无限的子域名。如果您有多个子域名需要保护,那么购买通配符SSL证书比为每个子域名购买单独的SSL证书要便宜得多。通配符SSL证书有一个星号*作为通用名称的一部分,其中星号代表具有相同基域的任何有效子域名。 ### 多域名SSL证书 多域名证书可用于保护许多个域名和/或子域名。这包括完全唯一的域和具有不同TLD(顶级域)的子域名的组合,本地/内部域除外。 申请SSL证书,我们必必须熟悉不同类型的SSL证书才能为您的网站获取正确类型的证书。 1
杨超
2025年6月5日 09:30
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期