在 HTTP 下加入 SSL 层,使用 443 端口。
证书:
将公钥和网站信息用 hash 算法生成摘要,防止篡改。
CA 再用私钥加密摘要,即“数字签名”。
将原始信息和数字签名合并,即“数字证书”。
过程:
建立连接获取证书
SSL 客户端通过 TCP 与服务器建立连接后(443端口),与服务器协商要使用的加密算法,并且服务会返回证书。证书包含了服务器的域名,使用了 CA 的私钥加密过。
证书验证
客户端收到证书后,同样将公钥和网站信息生成摘要,然后使用 CA 的公钥对数字签名进行解密,得到原始摘要,再对比摘要是否一致。如果一致说明未被篡改,那么公钥可用。同时还很要对比证书中的域名信息是否当前和当前访问的域名一致。
数据加密和传输
生成一个对称加密的密钥,并使用得到服务器的公钥进行加密,服务器收到后使用自身的私钥进行解密,得到对称加密的密钥,之后的通信就使用这个对称加密的密钥。
非对称加密:安全性高,灵活。
对称加密:运算速度快。
先用非对称加密校验证书和传输对称加密的密钥,再使用对称加密的密钥进行数据加密传输。