1.客户端访问服务端之前:
- 服务端将自己的注册信息以及服务端的公钥交给CA机构,CA机构通过自己的私钥对服务端的信息进行加密,生成证书。
- 浏览器里内置CA机构的公钥
2.客户端(浏览器)访问服务端:
- 浏览器访问服务端注册的域名时,服务端首先会将注册好的证书通过CA机构的私钥进行加密返回给浏览器。
- 浏览器拿到私钥加密的证书后,通过浏览器内置的CA机构的公钥进行解密,将解密后的内容通过Hash算法转化,然后将转化后的值与证书上的值进行比较,如果不相同说明被修改过。如果相同,就可以拿到服务器的公钥。
- 浏览器生成一个随机数(对称加密的密钥),然后将要传递的信息和随机数通过刚刚解密拿到的服务端的公钥进行加密,传给服务端。
- 服务器接收到信息后,通过服务器的私钥进行解密,拿到随机数,然后利用随机数将要返回的信息进行加密,传给浏览器。
- 浏览器拿到信息后,通过随机数进行解密,获取信息。