HTTPS简介以及和HTTP的区别
概念
-
SSL(Secure Sockets Layer):安全套接层 TSL(Transport Layer Security):传输层安全
SSL和TSL是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密保护。
-
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer):是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP+SSL/TSL
-
CA(Certificate Authority 证书授权中心):它是负责管理和签发证书的第三方机构,作用是检查证书持有者身份的合法性,并签发证书,以防证书被伪造或篡改。CA实际上是一个机构,负责“证件”印制核发。就像负责颁发身份证的公安局、负责发放行驶证、驾驶证的车管所。 CA证书(数字证书):包含证书拥有者的身份信息,CA机构的签名,公钥和私钥。身份信息用于证明证书持有者的身份;CA签名用于保证身份的真实性;公钥和私钥用于通信过程中加解密,从而保证通讯信息的安全性。证书内容如下: SSL证书:是数字证书的一种,因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
SSL证书是ca证书中的一种,CA是数字证书管理机构,ca机构颁发的证书类型比较多,只要是ca机构颁发的都属于ca证书,而SSL证书只是其中一种。
区别
-
https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议,信息是密文传输的。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTPS工作流程
- Client发起一个HTTPS(https:/demo.linianhui.dev)的请求,通过DNS服务器解析到服务器的IP地址,通过TCP三次握手,连接到Server的443(默认)端口。然后进行SSL握手,Client发送的https请求包含客户端SSL协议版本号、支持的加密算法、随机数等。
- Server把事先申请好的数字证书以及自己支持的加密算法、随机数等返回给客户端。
- Client验证公钥证书:比如是否在有效期内,证书的用途是不是匹配Client请求的站点,是不是在证书吊销列表 (Certificate Revocation List ,简称: CRL) 里面,它的上一级证书是否有效,这是一个递归的过程,直到验证到根证书(操作系统内置的Root证书或者Client内置的Root证书)。如果验证通过则继续,不通过则显示警告信息。
- 验证通过,Client使用伪随机数生成器生成加密数据所使用的会话密钥(使用双方都支持的加密算法生成的会话密钥),然后用证书的公钥加密这个会话密钥,发给Server。
- Server使用自己的私钥(private key)解密这个消息,得到会话密钥。至此,Client和Server双方都持有了相同的会话密钥。
- Server使用会话密钥加密“明文内容A”,发送给Client。
- Client使用会话密钥解密响应的密文,得到“明文内容A”。
- Client再次发起HTTPS的请求,使用会话密钥加密请求的“明文内容B”,然后Server使用会话密钥解密密文,得到“明文内容B”。
参考链接
上一篇:
IDEA上Java项目控制台中文乱码