公鑰證書是什么
https在建立通信時首先會采用非對稱加密的方式傳輸數據
(這里的傳輸數據一般是隨機生成的key 這個key用于后續的對稱加密)
服務端會生成一對秘鑰, 公鑰和私鑰
公鑰交給客戶端 私鑰留給服務端自己
客戶端在拿到公鑰后 如何確保拿到的公鑰就是想要訪問的服務端的公鑰呢?
這時就需要有一個公認的權威機構來證明, 公鑰是來自指定的服務端的公鑰
認證機構的工作
認證機構會生成一對秘鑰, 公鑰和私鑰
公鑰證書的生成包括了兩部分內容
- 數字簽名
- 服務器公鑰
其中數字簽名的生成過程是:
- 服務器公鑰 經過數字摘要算法 生成數字指紋
- 把生成的數字指紋 在用認證機構的私鑰加密 生成數字簽名
https中客戶端驗證公鑰證書的過程
服務器將公鑰證書發送給客戶端 客戶端驗證公鑰證書 從而確保公鑰的合法性
- 客戶端取出提前內置在手機內部的認證機構的公鑰
- 用認證機構的公鑰去解密公鑰證書里的數字簽名 從而得到數字指紋
- 客戶端對公鑰證書的服務器公鑰進行 數字摘要算法 從而生成數字指紋
- 對比客戶端自己生成的數字指紋(第3步)和解密得到的數字指紋(第2步)是否一致 如果一致則公鑰證書驗證通過 就可以進行接下來的握手步驟了