中間證書的使用


前言

我們經常在安裝和部署SSL證書的時候,需要一同安裝中間證書。中間證書到底是什么?為什么必須要安裝?為什么有時候,沒有中間證書,我的IE也能正常訪問HTTPS?為什么其他瀏覽器都OK了,但安卓手機就是不行了!

中間證書是什么

中間證書,其實也叫中間CA(中間證書頒發機構,Intermediate certificate authority, Intermedia CA),對應的是根證書頒發機構(Root certificate authority ,Root CA)。為了驗證證書是否可信,必須確保證書的頒發機構在設備的可信CA中。如果證書不是由可信CA簽發,則會檢查頒發這個CA證書的上層CA證書是否是可信CA,客戶端將重復這個步驟,直到證明找到了可信CA(將允許建立可信連接)或者證明沒有可信CA(將提示錯誤)。

為了構建信任鏈,每個證書都包括字段:“使用者”和“頒發者”。 中間CA將在這兩個字段中顯示不同的信息,顯示設備如何獲得下一個CA證書,重復檢查是否是可信CA。

根證書,必然是一個自簽名的證書,“使用者”和“頒發者”都是相同的,所以不會進一步向下檢查,如果根CA不是可信CA,則將不允許建立可信連接,並提示錯誤。

例如:一個服務器證書 domain.com,是由Intermedia CA簽發,而Intermedia CA的頒發者Root CA在WEB瀏覽器可信CA列表中,則證書的信任鏈如下:

證書 1 - 使用者:domain.com;頒發者:Intermedia CA

證書 2 - 使用者:Intermedia CA;頒發者: Root CA

證書 3 - 使用者:Root CA ; 辦法和: Root CA

當Web瀏覽器驗證到證書3:Root CA時,發現是一個可信CA,則完成驗證,允許建立可信連接。當然有些情況下,Intermedia CA也在可信CA列表中,這個時候,就可以直接完成驗證,建立可信連接。

但如果Web瀏覽器在驗證過程中,沒有找到這個Intermedia CA,那即使Root CA本身是可信CA,但因為WEB瀏覽器無法通過中間證書來發現這個Root CA,最后也會導致無法完成驗證,無法建立可信連接。

要獲得中間證書,一般有兩種方式:第一種、由客戶端自動下載中間證書;第二種、由服務器推送中間證書。以下分別討論。

客戶端自動下載中間證書

一張標准的證書,都會包含自己的頒發者名稱,以及頒發者機構訪問信息: Authority Info Access,其中就會有頒發者CA證書的下載地址。

 authority info access

通過這個URL,我們可以獲得這個證書的頒發者證書,即中間證書。Windows、IOS、MAC都支持這種證書獲取方式,但Android不支持這種方式,所以,如果我們僅依靠這種方式來獲得中間證書,就無法在Android系統上建立可信連接。

除了操作系統支持外,還有一個很重要的因素,就是客戶端可以正常訪問公網。如果客戶端本身在一個封閉的網絡環境內,無法訪問公網下載中間證書,就會造成失敗,無法建立可信連接。

此外,有些CA的中間證書下載地址因為種種原因被“牆”掉了,也會造成我們無法獲得中間證書,進而無法建立可信鏈接。

雖然自動下載中間證書的機制如此不靠譜,但在有些應用中,這卻是唯一有效的機制,譬如郵件簽名證書,由於我們發送郵件時,無法攜帶頒發郵件證書的中間證書,往往只能依靠客戶端自己去下載中間證書,一旦這個中間證書的URL無法訪問(被“牆”掉)就會造成驗證失敗。

 服務器推送中間證書

服務器推送中間證書,就是將中間證書,預先部署在服務器上,服務器在發送證書的同時,將中間證書一起發給客戶端。我們部署證書,首先就要找到頒發服務器證書的中間證書,可以用中間證書下載工具 。 

如果我們在服務器上不主動推送中間證書,可能會造成的問題

  • Android手機無法自動下載中間證書,造成驗證出錯,提示證書不可信,無法建立可信連接。
  • Java客戶端無法自動下載中間證書,驗證出錯,可信連接失敗。
  • 內網電腦,在禁止公網的情況下,無法自動下載中間證書,驗證出錯,可信連接失敗。

雖然我們不部署中間證書,在大多數情況,我們依然可以建立可信的HTTPS連接,但為了避免以上這些情況,我們必須在服務器上部署中間證書。

所以,為了確保我們在各種環境下都能建立可信的HTTPS連接,我們應該盡量做到以下幾點:

1、必須在服務器上部署正確的中間證書,以確保各類瀏覽器都能獲得完整的證書鏈,完成驗證。

2、選擇可靠的SSL服務商,有些小的CA機構,因為各種原因,造成他們的中間證書下載URL被禁止訪問,即使我們在服務器上部署了中間證書,但也可能存在某種不可測的風險,這是我們應該盡力避免的。

3、中間證書往往定期會更新,所以在證書續費或者重新簽發后,需要檢查是否更換過中間證書。

 

 FYI: https://www.myssl.cn/home/article-0406-42.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM