https简介
网景公司(Netscape)为了加强http协议的安全性,发明了一种叫做SSL(Secure Sockets Layer 安全套接层)的协议,它将SSL加入到了http协议中,于是便有了https协议的诞生。
SSL
Secure Socket Layer,其协议中主要包括如下三个子协议:
握手协议(Handshake protocol)
记录协议(Record protocol)
警报协议(Alert protocol)
TLS
由于ssl协议是由网景公司发明的,其维护也应由网景公司来负责,但1998年网景公司被收购了,那时的ssl版本发展到了3.0版本(ssl 3.0),尽管网景被收购不存在网景这个公司了,但总不能让这么好的ssl协议也不存在吧,总得要继续维护起来,于是乎互联网标准化组织 ISOC 便在1999年的时候接替了ssl协议,并发布了ssl的升级版,叫做TLS(安全传输层协议Transport Layer Security),也就是SSL3.0 ->TLS1.0。所以现在很多地方都有一个这样的叫法:SSL/TLS。
https交互过程原理
https客户端和服务端建立连接的过程稍微复杂一点, 下面这个链接有比较详细的描述:
(传输层安全协议抓包分析之SSL/TLS)https://www.freebuf.com/articles/network/116497.html
其主要的建立连接过程可通过抓包获得
通过过滤ssl协议,来查看建立连接的过程
在知道https服务器IP的情况下,通过如下的表达式进行查看:ip.addr==xxx.xxx.xxx.xxx and ssl
按照wireshare的抓包的结果,可将建立连接的过程简短分为如下步骤:
- 客户端向服务端发送Client Hello(发送支持的加密算法以及生成一个用于加密的随机数)
- 服务端向客户端发送Server Hello(确定加密算法以及发送服务端的加密随机数)
- 服务端向客户端发送Certificate(证书,证书中包含有所颁发的域名以及证书的颁发机构)
- 服务端向客户端发送Server Key Exchange,Server Hello Done()
- 客户端向服务端发送Client Key Exchange,Change Clipher Spec,Encrtypted Handshake Message
- 服务端向客户端发送New Session Ticket,Change Cipher Spec,Encrypted Handshake Message
免费https搭建
免费https证书与收费证书的区别?
待完善
trustasia, Let's Encrypt
Certbot
待完善
https抓包初探
待完善