HTTPS通信安全及证书管理_weixin_33729196的博客-CSDN博客
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 - SegmentFault 思否
计算机网络:HTTPS、SSL/TLS、AES、RSA_拉布拉多oop的博客-CSDN博客_aes和ssl
计算机网络:HTTPS、SSL/TLS、AES、RSA_拉布拉多oop的博客-CSDN博客_aes和ssl
什么是HTTPS证书?HTTPS证书含义及优势
GoLang:你真的了解HTTPS吗?(三) - https的哈希、流程和实战问题记录 - 知乎
3、客户端在接受到服务端发来的SSL证书时,会对证书的真伪进行校验,以浏览器为例说明如下:
(1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验
(2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发
(3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。
(4)如果找到,那么浏览器就会从操作系统中取出 颁发者CA 的公钥,然后对服务器发来的证书里面的签名进行解密
(5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
(6)对比结果一致,则证明服务器发来的证书合法,没有被冒充
(7)此时浏览器就可以读取证书中的公钥,用于后续加密了
4、所以通过发送SSL证书的形式,既解决了公钥获取问题,又解决了黑客冒充问题,一箭双雕,HTTPS加密过程也就此形成
所以相比HTTP,HTTPS 传输更加安全
(1) 所有信息都是加密传播,黑客无法窃听。
(2) 具有校验机制,一旦被篡改,通信双方会立刻发现。
(3) 配备身份证书,防止身份被冒充。
总结
Change Cipher Spec
编码改变通知。这一步是客户端通知服务端后面再发送的消息都会使用前面协商出来的秘钥加密了,是一条事件消息。
Encrypted Handshake Message
这一步对应的是 Client Finish 消息,客户端将前面的握手消息生成摘要再用协商好的秘钥加密,这是客户端发出的第一条加密消息。服务端接收后会用秘钥解密,能解出来说明前面协商出来的秘钥是一致的。
第五步 Server => Client
作者:壹号T馆
链接:https://www.jianshu.com/p/a3a25c6627ee
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
结束连接时如下.
为什么用抓包工具看HTTPS包是明文的 - _Tenma - 博客园
HTTPS基础
- 基于安全套接字协议(TLS/SSL)之上的HTTP通信协议
- 可用于抵御 窃听、篡改、冒充、劫持 攻击,实现 身份验证、信息加密、完整性校验
- 其在TCP协议三次握手之后增加了四次握手
PKI体系原理
- CA机构审核服务商身份信息后利用私钥签名其证书请求来签发证书
- 客户端利用CA机构公钥校验服务商证书上的签名从而验证其身份
SSL/TLS
SSL/TLS
是 PKI
体系的一种实现
- TLS: 传输层安全协议(Transport Layer Security),基于RSA加密算法
- SSL:TLS的上一代产品,已废弃
SSL/TLS
通信流程
- 客户端请求建立加密通信等 +随机数1
- 服务器返回证书(内含非对称加密公钥)等 +随机数2
- 客户端校验证书并从中取出公钥,通知服务端握手结束等 +公钥加密随机数3
- 服务端私钥解密随机数3,并通知客户端握手结束等
- 两端各自基于三个随机数生成对称加密秘钥session key,通信进入常规http协议并用session key加密
证书概要
证书是CA为服务商签发的身份认证凭据
- 浏览器默认已内置了常用
CA根证书
(CA的自签名证书) - 我们可选用免费的CA机构
Let's Encrypt
签发的证书 - 证书可通过信任链传递有效性
- 证书内容包括
- CA私钥签名、CA公钥、签发机构、域名、申请者等
- 可能存在的信任链(如果不是CA根证书签发的话)
- 证书主要分两类:
- 自签名证书
- CA证书(可用于签名其他证书)
- 有两种方式吊销证书:
- CRL 文件
- OCSP
- 证书格式
常规证书签发
openssl genrsa -out domain.key 4096 # 网站先生成 rsa加密的私钥
openssl req -new -key domain.key -out domain.csr # 基于 网站私钥 生成 证书请求csr
# csr证书请求 被签名后 转换为证书
# 证书可由商业CA机构签发 或 以下方式自行签发3种证书:
openssl x509 -req -in domain.csr -signkey domain.key -out domain.crt # 基于网站私钥 签发 自签名证书
openssl x509 -req -in domain.csr -signkey domain.key -extensions v3_ca -out domain_ca.crt # 基于网站私钥 签发 自签名CA证书
openssl x509 -req -in next_domain.csr -CA domain_ca.crt -CAkey domain_ca.key -CAcreateserial -extensions v3_usr -out next_domain_ca.crt # 基于 CA证书、CAkey 签发 派生域名的CA证书