Web 伺服器是否將證書鏈發送到 Web 客戶端?
如果我的 Web 伺服器(最新的 Apache)有一個有效的(未過期或撤銷的)威瑞信證書鏈(根 -> 中間 -> 葉/我的伺服器),那麼伺服器是否將整個(?)鏈發送給客戶端?Web 客戶端(例如,最新的 Chrome)是否需要線上查找每個相同的證書,尤其是在客戶端已經信任根 CA 的情況下?
如果客戶無法聯繫威瑞信會怎樣?(例如,在沒有 WiFi 的筆記型電腦上設置 LAMP)。
如果您閱讀RFC 5246 第 7.4.2 章,您會發現:
certificate_list
這是證書的序列(鏈)。發件人的證書必須在列表中排在第一位。後面的每個證書必須直接證明它前面的證書。因為證書驗證要求根密鑰是獨立分發的,所以可以從鏈中省略指定根證書頒發機構的自簽名證書,假設遠端端必須已經擁有它才能在任何情況下驗證它。
很好地解釋了它。伺服器是否真的這樣做取決於系統管理員配置它的方式。由於許多客戶端可以使用 AIA 擴展中提供的 URL 獲取其 CA 證書,因此許多配置錯誤的伺服器“逃脫”而不執行上述操作。
許多客戶端還記憶體他們接收/下載的證書,以減少每次鍊式建構時獲取的負擔。Windows 上的 Chrome 使用 Microsoft 的 CAPI 來管理其證書(與 IE 相同),它會記憶體證書。Linux/OSX 上的 Chrome 使用 Mozilla 的 NSS 來管理它的證書,它也記憶體證書。因此,如果您線上使用您的網站,所有高級 CA 證書都將記憶體在您的系統上,並且“離線”將起作用(無論如何一段時間)。
但是,一些 CA 使用 OCSP 進行吊銷檢查。如果您處於離線狀態,則 OCSP 客戶端無法聯繫 OCSP 響應程序以獲取吊銷資訊。在這種情況下會發生什麼取決於您的客戶端軟體的配置。預設情況下,大多數瀏覽器“軟失敗”——也就是說,它們忽略了無法聯繫 OCSP 響應者的事實,並假設一切正常。有些可以配置為“硬失敗”,如果無法聯繫到 OCSP 響應者,它們將無法通過吊銷檢查。