https是用了ssl校验请求合法性的http服务。也就是说一个https的服务必然会配置一个证书,首先介绍一下https的工作过程,再详细讲述SSL或者说是TSL的工作原理
https工作过程
1、客户端发起https请求
2、服务端收到请求后,将自己服务端配置的证书(下面详解证书颁发过程,例如*.crt文件)发送给客户端(一般为浏览器),这个数字证书不但包含了用于非对称加密的公钥,还包含公钥算法、证书的颁发机构及过期时间等信息
3、客户端接收到数字证书后,解析验证服务器的合法性,主要包括:证书是否过期,发行服务器证书的CA 是否可靠,发行证书的公钥(放在浏览器根证书文件中,基本所有浏览器会内置好)能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果校验没有问题,客户端将随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤三中的服务器的证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。当然如果验证没通过,则会弹出提示告知用户。
4、服务端用自己的私钥(*.key文件)将该随机值进行解密,然后将需要返回给客户端的内容使用该随机值(密钥)进行对称加密。将加密后的内容返回给客户端。客户端使用之前生成的随机值(对称加密私钥)对内容进行解密从而获得真实内容
ssl/tsl证书体系
SSL (Secure Sockets Layer)安全套接层。是由Netscape公司于1990年开发,用于保障Word Wide Web&