HTTPS的通信過(guò)程如下:1、客戶端向服務(wù)器發(fā)起請(qǐng)求,請(qǐng)求中包含使用的協(xié)議版本號(hào)、生成的一個(gè)隨機(jī)數(shù)、以及客戶端支持的加密方法。
2、服務(wù)器端接收到請(qǐng)求后,確認(rèn)雙方使用的加密方法、并給出服務(wù)器的證書、以及一個(gè)服務(wù)器生成的隨機(jī)數(shù)。
3、客戶端確認(rèn)服務(wù)器證書有效后,生成一個(gè)新的隨機(jī)數(shù),并使用數(shù)字證書中的公鑰,加密這個(gè)隨機(jī)數(shù),然后發(fā)給服 務(wù)器。并且還會(huì)提供一個(gè)前面所有內(nèi)容的 hash 的值,用來(lái)供服務(wù)器檢驗(yàn)。
4、服務(wù)器使用自己的私鑰,來(lái)解密客戶端發(fā)送過(guò)來(lái)的隨機(jī)數(shù)。并提供前面所有內(nèi)容的 hash 值來(lái)供客戶端檢驗(yàn)。
5、客戶端和服務(wù)器端根據(jù)約定的加密方法使用前面的三個(gè)隨機(jī)數(shù),生成對(duì)話秘鑰,以后的對(duì)話過(guò)程都使用這個(gè)秘鑰來(lái)加密信息。