首先附上證書轉(zhuǎn)換的方法鸥咖,如下:
在服務(wù)器人員,給你發(fā)送的crt證書后兄世,進(jìn)到證書路徑啼辣,執(zhí)行下面語句
$openssl x509 -in 你的證書.crt -out 你的證書.cer -outform der
這樣你就可以得到cer類型的證書了,并雙擊導(dǎo)入電腦證書放入工程 :
2.1 可以直接把轉(zhuǎn)換好的cer文件拖動(dòng)到工程中
2.2 可以在鑰匙串內(nèi)御滩,找到你導(dǎo)入的證書鸥拧,單擊右鍵,導(dǎo)出項(xiàng)目削解,就可以導(dǎo)出.cer文件的證書了
以上資料參考:https://blog.csdn.net/st646889325/article/details/53856833
以下使用通俗一點(diǎn)的名稱作假設(shè):
公鑰 可以理解為 保險(xiǎn)柜富弦,用于加密數(shù)據(jù)
私鑰 可以理解為 解鎖密碼,用于解密獲取數(shù)據(jù)
只有對(duì)應(yīng)的 私鑰 才能打開 公鑰 氛驮,服務(wù)端的 公鑰+私鑰 是成一對(duì)存在腕柜。
客戶端生成的隨機(jī)數(shù) ,這個(gè)東西是具有加密矫废、解密 功能盏缤。
完成以上 .crt 轉(zhuǎn)換 .cer 并導(dǎo)入到工程之后,工程(客戶端)上已經(jīng)有 服務(wù)端的保險(xiǎn)柜 了蓖扑,因?yàn)樗菑倪@個(gè) .cer 證書里取出來的唉铜。
非對(duì)稱加密
1.當(dāng) 客戶端 發(fā)起請(qǐng)求時(shí),會(huì)生成一個(gè)隨機(jī)數(shù)律杠,并備份在本地存有一份潭流;然后利用 服務(wù)端的保險(xiǎn)柜 鎖著這個(gè)隨機(jī)數(shù) 并發(fā)送過去 服務(wù)端
2.服務(wù)端 收到之后柿赊,使用只有自己知道的 解鎖密碼 去打開并獲得 客戶端生成的隨機(jī)數(shù); 此時(shí)雙方都持有了這個(gè) 隨機(jī)數(shù)
此傳輸過程就是 非對(duì)稱加密幻枉,這種方式在傳輸工程中如果遭到了第三方hook也不會(huì)有影響碰声,因?yàn)?strong>保險(xiǎn)柜必須解鎖才能知道里面裝得是什么東西,然而這個(gè)解鎖密碼 就只有 服務(wù)端 知道熬甫。
對(duì)稱加密
經(jīng)過上述的非對(duì)稱加密之后胰挑, 客戶端 與 服務(wù)端 都持有了相同的 隨機(jī)數(shù)。
當(dāng)建立連接傳輸數(shù)據(jù)的時(shí)候椿肩,會(huì)使用這個(gè) 隨機(jī)數(shù) 對(duì)數(shù)據(jù)進(jìn)行加密瞻颂,接收數(shù)據(jù)的一方再用 隨機(jī)數(shù) 進(jìn)行解密獲得。
以下附上 TCP三次握手 的相關(guān)資料:
https://baijiahao.baidu.com/s?id=1614404084382122793&wfr=spider&for=pc
https://www.zhihu.com/question/24853633?sort=created
以上內(nèi)容純粹個(gè)人見解郑象,僅用于分享交流贡这,如有描述不當(dāng)之處,歡迎指出厂榛。