SSL協(xié)議簡介:
- 傳輸層和應(yīng)用層之間的安全協(xié)議
- 非對(duì)稱加密(身份認(rèn)證)+ 對(duì)稱加密(信息加密)
應(yīng)用場(chǎng)景:支付等安全需求性高的C/S網(wǎng)絡(luò)請(qǐng)求中
單向認(rèn)證:客戶端無證書馍管,只需確認(rèn)server的身份
雙向認(rèn)證:兩端都有證書,不僅client要認(rèn)證server身份,server也要認(rèn)證client身份
身份認(rèn)證的握手過程采用證書的形式:
- 有CA頒發(fā)的證書吓笙,也有自簽名的證書(使用OpenSSL或keytool生成);
- 證書中主要包含發(fā)送端的公鑰,證書合法取出公鑰幻林,公鑰可用于對(duì)“對(duì)稱加密的密鑰”進(jìn)行加密终吼。
兩端配置證書:
1镀赌、如果是單向認(rèn)證(僅認(rèn)證服務(wù)端身份),使用keytool生成服務(wù)端的.jks文件和.cer證書际跪,并在服務(wù)端配置好.jks文件的路徑商佛,在客戶端導(dǎo)入該.cer證書;
2垫卤、如果需要雙向證書認(rèn)證威彰,兩端都要生成各自的.jks和.cer,然后服務(wù)端配置好兩端的.jks文件路徑穴肘,客戶端配置好自己的.jks文件(但android只能識(shí)別.bks歇盼,故把.jks轉(zhuǎn)成.bks),以及導(dǎo)入服務(wù)端的.cer證書评抚。
相關(guān)鏈接
也許豹缀,這樣理解HTTPS更容易
Android Https相關(guān)完全解析 當(dāng)OkHttp遇到Https
ssl雙向認(rèn)證和單向認(rèn)證原理