天天看點

Https的CA憑證是如何驗證其有效性的?

一、證書作用

證書驗證的過程是使用非對稱加密的,用戶端對伺服器端發起請求,伺服器傳回一個證書,用戶端驗證這個證書的合法性,如果這個證書是合法的,那麼就生成一個随機值,利用這個随機值作為對稱加密的鑰匙

二、證書包含的資訊

公鑰;
持有者資訊;
證書認證機構(CA)的資訊;
數字簽名及使用的算法;
證書有效期;
額外資訊;      

為了讓服務端的公鑰被大家信任,服務端的證書都是由 CA (Certificate Authority,證書認證機構)簽名的,CA 就是網絡世界裡的警察局、公證中心,具有極高的可信度,是以由它來給各個公鑰簽名,信任的一方簽發的證書,那必然證書也是被信任的。

之是以要簽名,是因為簽名的作用可以避免中間人在獲驗證書時對證書内容的篡改

三、數字證書簽名流程

首先 CA 會把持有者的公鑰、用途、頒發者、有效時間等資訊打成一個包,然後對這些資訊進行 Hash 計算,得到一個 Hash 值;

然後 CA 會使用自己的私鑰将該 Hash 值加密,生成 Certificate Signature,也就是 CA 對證書做了簽名;

最後将 Certificate Signature 添加在檔案證書上,形成數字證書;

四、證書驗證流程

首先用戶端會使用同樣的 Hash 算法擷取該證書的 Hash 值 H1;

通常浏覽器和作業系統中內建了 CA 的公鑰資訊,浏覽器收到證書後可以使用 CA 的公鑰解密 Certificate Signature 内容,得到一個 Hash 值 H2 ;