基于android的app開發(fā) 如何用Tomcat和Openssl構(gòu)建HTTPS雙向認(rèn)證環(huán)境?
如何用Tomcat和Openssl構(gòu)建HTTPS雙向認(rèn)證環(huán)境?配置前,直接淘寶:gworg獲取公網(wǎng)信任證書。配置Tomcat以支持HTTPS的雙向身份驗(yàn)證(服務(wù)器將對客戶端證書進(jìn)行身份驗(yàn)證):修改服務(wù)
如何用Tomcat和Openssl構(gòu)建HTTPS雙向認(rèn)證環(huán)境?
配置前,直接淘寶:gworg獲取公網(wǎng)信任證書。配置Tomcat以支持HTTPS的雙向身份驗(yàn)證(服務(wù)器將對客戶端證書進(jìn)行身份驗(yàn)證):修改服務(wù)器.xml文件($Tomcat)uhome/conf/服務(wù)器.xml)事實(shí)上,HTTPS的單向和雙向身份驗(yàn)證配置的唯一區(qū)別是將clientauth更改為false,并刪除truststore的相關(guān)配置,即單向HTTPS身份驗(yàn)證。單向HTTPS可能會被更多地使用。主要需要在瀏覽器與f服務(wù)器交互的HTTP中進(jìn)行加密,但不需要在客戶端證書不需要驗(yàn)證的情況下進(jìn)行加密。)完成上述配置后,重啟tomcat,服務(wù)器支持HTTPS的雙向認(rèn)證。
https單向認(rèn)證和雙向認(rèn)證的區(qū)別?
1. 不同的安全性:
單向身份驗(yàn)證只需要站點(diǎn)部署SSL證書,任何用戶都可以訪問它(IP受限制的情況除外),但服務(wù)器提供身份驗(yàn)證。雙向認(rèn)證是指服務(wù)器需要客戶端提供身份認(rèn)證,只有服務(wù)器允許的客戶端才能訪問。安全性高于客戶端。
2. 不同的用途:
一般web應(yīng)用采用單向認(rèn)證,原因很簡單,用戶數(shù)量廣,而且不需要在通信層做用戶認(rèn)證,一般在應(yīng)用邏輯層保證用戶合法登錄。但是,如果是企業(yè)應(yīng)用對接,情況就不同了,可能需要對客戶端(相對來說)進(jìn)行身份驗(yàn)證。此時(shí),我們需要做雙向身份驗(yàn)證。
3. 不同要求:雙向認(rèn)證SSL協(xié)議的具體通信過程,要求服務(wù)器和客戶端都有證書。單向身份驗(yàn)證SSL協(xié)議不要求客戶機(jī)擁有CA證書,在協(xié)商對稱密碼方案和對稱調(diào)用密鑰時(shí),服務(wù)器向客戶機(jī)發(fā)送一個(gè)未加密(不影響SSL進(jìn)程的安全)密碼方案。
擴(kuò)展信息:
SSL雙向身份驗(yàn)證客戶端發(fā)送和接收的握手信號:
發(fā)送客戶端Hello消息,解釋加密算法列表、壓縮方法和它支持的最大協(xié)議版本,并發(fā)送隨機(jī)數(shù)供以后使用。
然后,將收到一條服務(wù)器Hello消息,該消息包含服務(wù)器選擇的連接參數(shù),并來自客戶端在開始時(shí)提供的客戶端Hello。
當(dāng)雙方都知道連接參數(shù)時(shí),客戶端和服務(wù)器將交換證書(取決于選定的公鑰系統(tǒng))。這些證書通?;赬.509,但是有些草稿支持基于OpenPGP的證書。
服務(wù)器請求客戶端的公鑰??蛻舳擞幸粋€(gè)證書,即雙向身份驗(yàn)證。當(dāng)沒有證書時(shí),將隨機(jī)生成公鑰??蛻舳撕头?wù)器端通過公鑰保密機(jī)制協(xié)商公共主密鑰(雙方隨機(jī)協(xié)商),通過精心設(shè)計(jì)的偽隨機(jī)數(shù)函數(shù)實(shí)現(xiàn)。結(jié)果可以使用Diffie-Hellman交換,或者簡化的公鑰加密,雙方都用私鑰解密。
此“主密鑰”用于加密所有其他關(guān)鍵數(shù)據(jù)。在數(shù)據(jù)傳輸中,記錄層用來封裝HTTP等更高級的協(xié)議。記錄層數(shù)據(jù)可以隨意壓縮加密,并與報(bào)文驗(yàn)證碼一起壓縮。每個(gè)記錄層包都有一個(gè)內(nèi)容類型段,用于記錄較高層使用的協(xié)議。
參考源: