先清楚一个约定:私钥加密后的内容公钥可解密,公钥加密后的内容只有私钥可以解密。
客户端先向服务器发送自己的公钥k1,然后服务器再根据公钥k1生成对称公钥k2,并用k1对k2进行加密,加密过后的内容只有客户端的私钥能够解开,客户端收到之后得到服务器的公钥k2,从而两人可进行对称加密通信。
但是中间人可以模仿任意一端进行截取,再发给另外一端,所以不安全。从而引入数据证书,
客户端先向机构发送公钥,机构用私钥加密公钥的数字证书发回客户端,客户端再将数据证书发给服务器,服务器找到相应数据证书的公钥对数据证书解密,得到客户端的公钥,生成对称密钥,后又用公钥对此密钥进行加密,此密文只有客户端的私钥可解,从而两人进行对称通信,这总的过程叫做非对称加密。
总的一句话,就是为了让对方安全得到自己的公钥。