访问HTTPS过程
首先浏览器向服务器的443端口发出请求,请求携带的有加密算法和哈希算法。
服务器收到请求后,会选择浏览器支持的加密方式,把数字证书发送给浏览器。
浏览器再拿到证书以后,在内置的TLS中开始认证环节。
首先在内部证书列表中查找,找到服务器下发证书对应的机构,没找到的话,提示用户该证书不是权威机构下发的不可信任。如果找到找到对应的机构,则取出该机构颁发的公钥。
使用证书的公钥解密后,得到该证书的内容和签名,证书内容包括(证书的网址、证书的公钥、证书有效期)。浏览器会验证证书的网址是否一致,证书是否到期,如果不通过则提示用户,通过则表示可以安全使用网站公钥。
浏览器生成一个随机数,使用公钥加密,并将加密后的随机数发送给服务器。
服务器使用自己的私钥解密后得到随机数。
服务器以随机数为密钥使用对称加密算法加密网页内容,并发送给浏览器。
浏览器以随机数为密钥使用之前约定好的解密算法获取网页内容。
对称加密算法:对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yao)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。