如何使用openssl查看證書?
謝邀。最近在寫https代理的程序,使用openssl實現ssl連接,有涉及到ssl證書。https的作用有三:1加密傳輸 2認證 3數據完整性ssl證書的主要是用來做認證和加密。大多數證書基于 X.509 v3 證書標準。下面以一次ssl連接進行說明。比如客戶端要認證服務器,服務器怎么證明自己是真實的服務器,而不是釣魚網站呢?這需要服務器有個證書。證書包含以下信息: 使用者的公鑰值。 使用者標識信息(如名稱和電子郵件地址)。 證書的有效時間。 頒發者CA標識信息。 頒發者CA的數字簽名。你可以在IE中Internet選項》內容》證書 中看看證書長什么樣。有效的證書需要由權威機構CA簽名,CA會用自己的私鑰來生成數字簽名。這個權威機構CA客戶端是可以完全信任的,客戶端瀏覽器會安裝CA的根證書,由CA簽名的證書是被CA所信任的,這就構成了信任鏈,所以客戶端可以信任該服務器的證書。 客戶端與服務器建立ssl連接時,服務器將自身的證書傳輸給客戶端,客戶端在驗證證書的時候,先看CA的根證書是否在自己的信任根證書列表中。再用CA的根證書提供的公鑰來驗證服務器證書中的數字簽名,如果公鑰可以解開簽名,證明該證書確實被CA所信任。再看證書是否過期,訪問的網站域名與證書綁定的域名是否一致。這些都通過,說明證書可以信任。
接下來使用服務器證書里面的公鑰進行服務器身份的驗證。 客戶端生成一個隨機數給到服務器。 服務器對隨機數進行簽名,并回傳給到客戶端。 客戶端用服務器證書的公鑰對隨機數的簽名進行驗證,若驗證通過,則說明對應的服務器確實擁有對應服務器證書的私鑰,因此判斷服務器的身份正常。否則,則任務服務器身份被偽造。這些都沒問題才說明服務器是可信的。
接下來客戶端會生成會話密鑰,使用服務器公鑰加密。服務器用自己的私鑰解密后,用會話密鑰加密數據進行傳輸。ssl連接就建立了。