https是什么
HTTPS 即 Hypertext Transfer Protocol Secure 的简称,它是一种安全的网络通信传输协议,由HTTP进行通信;在HTTP协议的基础上加入了SSL/TLS层,利用SSL/TLS建立全信道加密数据包,从而保证了数据的安全,其提供对网站服务器身份认证的功能,保护交换数据的隐私与完整性。
TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分
image.png
前提知识
1、使用HTTPS,服务端必须要有一套数字证书,一般证书都是向受信任的CA机构申请;
2、对称加密,即加密和解密使用同一个密匙的加密算法;
3、非对称加密,即加密和解密使用不同密匙的加密算法,公钥用于加密,私钥用于解密;
4、HTTPS使用的是混合加密算法,即对称和非对称都使用,先用非对称然后使用对称加密;
5、在安装操作系统的时候,会默认安装受信任CA机构的证书,里面包含有CA机构的公钥;
6、证书的作用其实主要是返回服务器的公钥;
7、实际数据传输过程中使用的是对称加密算法,只是获取公钥时使用非对称算法;
https请求流程
1、客户端使用https协议,向服务器发送请求;
2、服务端会给客户端(这里指浏览器)返回一个数字证书;
3、如果客户端没有设置默认信任所有证书,这时浏览器会从本地操作系统中取出CA的公钥,验证证书;
4、当证书验证通过后,取出服务器的公钥,将约定的对称加密密钥和加密算法用公钥加密后发送给服务器;
5、服务器使用私钥将客服端的信息解密,获取对称加密加密的公钥和加密算法;
6、服务器获取密钥后开始和客户端使用对称加密算法传输数据;
至此整个HTTPS请求过程结束;
image.png
要想保证HTTPS的绝对安全,客户端一定需要验证证书的合法性;
网友评论