SSL通訊證書詳解

2021-09-17 23:28:22 字數 1453 閱讀 1703

在https通訊中,客戶端需要驗證伺服器提供的數字證書。數字證書中包含了公鑰以及其他一些資訊。那麼數字證書中的引數是什麼意思呢?  

這裡列舉乙個證書(自簽名證書)

生成證書的方式:

1.版本

這個很好理解,就是證書的版本,目前通用的是v3

2. 序列號

這個是用來標識某個證書的,也很好理解

3.簽名演算法

這個簽名演算法是指當前證書的簽名使用什麼演算法簽名的,上圖是乙個自簽名證書,也就是用自己的私鑰給自己簽名的。

這個簽名演算法是sha256rsa。當ssl通訊的時候,客戶端收到證書後,就可以使用該簽名演算法和公鑰來驗證該簽名。

4. 簽名雜湊演算法

我們都知道,證書的數字簽名是將證書的數字摘要用私鑰進行加密的,那麼數字摘要的演算法是什麼呢,這裡就是指計算數字摘要所使用的演算法。那麼ssl通訊的時候,客戶端時怎麼驗證證書的有效性的呢,首先客戶端收到證書後,將使用公鑰和簽名演算法解密簽名,這時候得到的是數字摘要,然後再通過簽名雜湊演算法來對證書進行計算,計算出的數字摘要和通過公鑰解密的數字摘要進行對比。如果一致,說明證書是可信的。

當然這裡有個題外話,就是使用誰的公鑰來解密簽名。當然是給證書簽名的公鑰啦,那麼我們如何得知是誰簽名的呢?接著往下看

5.頒發者

頒發者就是指誰給證書簽名的,如果是自簽證書,那麼頒發者和使用者是同乙個,如果不是自簽證書,那麼這裡的頒發者就是給證書簽名者的資訊。我們事先需要拿到簽名者的公鑰,才可以驗證。

6.有效期從 -到

這個很好理解的,證書的有效期,超過這個時間,證書就失效了。

7.使用者

使用者是指證書的擁有者,這裡會有cn(common name),ou(organization unit),o(organization),l(location),

s(state)和c(country)等資訊。cn一般會是網域名稱等,一般**的證書,cn都會是對應的網域名稱,客戶端驗證證書的時候,會 校  驗當前訪問的**網域名稱和證書中cn是否 一樣。

8.公鑰

就是使用者的公鑰,這裡客戶端拿到證書後,就相當於擁有了公鑰,在接下來的通訊中,可以將某些資訊通過公鑰加密,傳送給伺服器,這樣就防止資訊洩露,當然ssl握手的第三個"random"也是通過這種方式實現的

9.公鑰引數

這裡公鑰引數是與公鑰產生的演算法有關的。對於rsa演算法產生的公鑰,公鑰引數是05 00 

10. 使用者金鑰標識

這裡是指使用者私鑰的乙個標識。

11. 指紋

這裡是指證書的通過hash演算法算出來的整個證書的hash,來確保證書在傳輸過程有沒有被修改過。

12. 指紋演算法

這裡是指證書的hash演算法。正常情況下是sha1

asio製作使用ssl通訊的證書

1,生成ca的key openssl genrsa out ca.key 1024 2048 with out password protected openssl genrsa des3 out ca.key 1024 2048 password protected 2,根據ca的key,生成頂級...

免費SSL證書收費SSL證書區別

免費ssl證書幾乎氾濫,很多對ssl證書有需求的使用者一直在糾結免費的ssl證書是否可用,免費的ssl證書與收費的ssl證書究竟有什麼區別 免費的ssl證書 免費或者1元,2元象徵性的收費,自主申請,過程複雜 需要專業知識,否則困難相對很多,有一定概率無法順利申請到證書,僅僅能申請入門級證書 僅能申...

配置ssl證書 Apache配置SSL證書指引

1 使用yum安裝apache yum install httpd y2 修改測試頁面 vim var www html index.hemlps 修改為測試內容,我這裡修改的是 this is a test page.3 啟動服務 service httpd start4 訪問測試 1 安裝ssl...