HTTPS協議=HTTP協議+SSL/TLS協議
在HTTPS傳輸數據過程中,分別用到了對稱加密、非對稱加密算法。
一次HTTPS請求過程,有兩次HTTP數據傳輸。
第一次,客戶端發起HTTP請求,服務端的443端口響應請求。
服務端持有非對稱加密用到的公鑰和私鑰,把其中的公鑰返回給客戶端,保留私鑰。
客戶端接收到公鑰后,驗證其合法性,如果合法,則生成一個隨機密鑰存在本地,并利用接收到的公鑰對隨機密鑰進行非對稱加密。
第一次HTTP傳輸結束。
現在,客戶端持有一個利用非對稱加密算法加過密的隨機密鑰,開始進行第二次HTTP傳輸。
客戶端把這個隨機密鑰提交到服務端,服務端利用私鑰,對這個隨機密鑰進行非對稱算法解密過程,拿到明文的隨機密鑰。
服務端再利用這個隨機密鑰,對數據進行對稱加密,得到數據的密文,并響應到客戶端。
客戶端拿到數據的密文,利用存在本地的隨機密鑰,進行對稱算法的解密過程,拿到明文數據。
第二次HTTP傳輸結束。