HTTPS = HTTP + SSL/TLS,現在一般都使用TLS.
HTTPS工作過程如下:
1. 瀏覽器向服務器發送HTTPS請求,該請求中包含一個密文族,該族即爲瀏覽器所支持的加密算法清單;
2. 服務器從該清單中選擇一種非對稱加密算法,如RSA算法。
3. 服務器向客戶端傳送證書,該證書包含2中非對稱加密算法的公鑰,也包括頒發機構、有效期等信息。
服務器可以選擇自己製作證書,也可以選擇向第三方權威機構購買證書,區別是,第三方購買的權威證書在客戶端可直接使用,而自己製作的證書瀏覽器會發出警告。
4. 瀏覽器生成一個隨機的key,該key即爲對稱算法的私鑰(如AES算法),後面用於加密通信數據;瀏覽器使用從服務器獲得的公鑰對該key加密,併發送給服務器。
5. 服務器使用非對稱加密算法的私鑰對4中的key進行解密。至此,通信雙方都已擁有對稱加密算法的key,非對稱加密算法完全其自身使命,之後的通信加密任務交給對稱算法完成。
6. 隨後雙方使用對稱算法key加密數據,進行通信傳輸。
參考:
https://yq.aliyun.com/articles/14420
http://blog.csdn.net/sean_cd/article/details/6966130?spm=5176.100239.blogcont14420.3.AUEPox