1.https 與 ssl 的關(guān)系
https 是基于 http 超文本傳輸協(xié)議的一種安全的協(xié)議,稱為安全的超文本傳輸協(xié)議。http 直接基于 tcp 協(xié)議,而https 是在 http 和 tcp 中間加上一層加密層。該層是安全套接層 ssl,ssl 協(xié)議可分為兩層: ssl 記錄協(xié)議(SSL Record Protocol),建立在可靠的傳輸協(xié)議,例如 tcp,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。 ssl 握手協(xié)議(SSL Handshake Protocol),建立在 ssl 記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。

問題:https 與 ssl 的關(guān)系?
https 與 ssl 的關(guān)系是包含與被包含的關(guān)系,簡(jiǎn)單來說就是 https=http+ssl,即 https 是在 http 上面加了一層 ssl 協(xié)議,用于驗(yàn)證服務(wù)端或客戶端的合法性。
2.https 單向認(rèn)證和雙向認(rèn)證
2.1 keystore 和 truststore 與單向認(rèn)證和雙向認(rèn)證的關(guān)系
問題1:什么是 keystore 和 truststore?
keystore 是存儲(chǔ)密鑰(公鑰、私鑰)的容器,keystore 和 truststore 其本質(zhì)都是 keystore,但是二者盛放的密鑰所有者不同而已,對(duì)于 keystore 一般存儲(chǔ)自己的私鑰和公鑰,而 truststore 存儲(chǔ)自己信任的對(duì)象公鑰的證書。
問題2:什么是單向認(rèn)證和雙向認(rèn)證?
單向認(rèn)證是指客戶端確定服務(wù)端身份。雙向認(rèn)證則是指客戶端需要確認(rèn)服務(wù)端身份,同時(shí)服務(wù)端也需要確認(rèn)客戶端的身份。
問題3:keystore 和 truststore 與單向認(rèn)證和雙向認(rèn)證是什么關(guān)系?
單向認(rèn)證的場(chǎng)景下,客戶端要認(rèn)證服務(wù)端的身份,因此客戶端的 keystore 保存自身的私鑰和公鑰,而 truststore 保存服務(wù)端公鑰的數(shù)字證書。
雙向認(rèn)證的場(chǎng)景下,客戶端要認(rèn)證服務(wù)端的身份,因此客戶端的 keystore 保存自身的私鑰和公鑰,而 truststore 保存服務(wù)端公鑰的證書。服務(wù)端也需要認(rèn)證客戶端的身份,因此服務(wù)端的 keystore 保存自身的私鑰和公鑰,而 truststore 保存客戶端公鑰的數(shù)字證書。
2.2 單向認(rèn)證的工作流程

2.3 雙向認(rèn)證的工作流程
