【SSL證書系列】客戶端如何驗證https網站服務器發的證書是否由受信任的根證書簽發機構簽發

客戶端驗證HTTPS網站證書是否由受信任的根證書頒發機構(CA)簽發,是一個多步驟的過程,涉及證書鏈驗證、信任錨(Trust Anchor)檢查、域名匹配和吊銷狀態驗證等。以下是詳細的驗證流程:


1. 證書鏈的構成
服務器發送的證書通常是一個證書鏈,包含:
? 服務器證書:網站的公鑰證書(由中間CA簽發)。

? 中間CA證書:由根CA簽發的中間證書頒發機構(Intermediate CA)的證書。

? 根CA證書:根證書頒發機構的自簽名證書(通常不直接發送,而是預裝在客戶端系統中)。

示例:

網站證書(由 Intermediate CA 簽發)  
→ Intermediate CA 證書(由 Root CA 簽發)  
→ Root CA 證書(預裝在客戶端中,作為信任錨)

2. 驗證步驟
(1) 證書鏈完整性驗證
? 客戶端(瀏覽器/操作系統)從服務器接收證書鏈,逐級驗證簽名:

  1. 服務器證書:用中間CA的公鑰驗證其簽名。
  2. 中間CA證書:用根CA的公鑰驗證其簽名。
  3. 根CA證書:客戶端內置的根證書列表中是否存在該根CA?若存在,則信任鏈成立。

(2) 信任錨(Trust Anchor)檢查
? 客戶端內置的根證書列表(Trust Store)是驗證的核心:

? 操作系統或瀏覽器預裝根證書:如Windows的“受信任的根證書頒發機構”、macOS的鑰匙串訪問、Chrome/Firefox的內置CA列表。

? 根CA證書必須是自簽名的,且客戶端明確信任它(例如用戶手動安裝的例外情況除外)。

(3) 證書有效期驗證
? 檢查證書的生效日期和過期時間,確保當前時間在有效期內。

(4) 域名匹配
? 證書中的Subject Alternative Name (SAN) 或 Common Name (CN) 必須與訪問的域名一致(如 example.com*.example.com)。

(5) 吊銷狀態檢查
? 客戶端需檢查證書是否被CA提前吊銷:

? CRL(證書吊銷列表):下載CA發布的吊銷列表,檢查證書序列號是否在其中。

? OCSP(在線證書狀態協議):直接向CA的OCSP服務器發送請求,實時查詢證書狀態。

? OCSP Stapling:服務器定期從CA獲取OCSP響應并緩存,在TLS握手時直接發送給客戶端,避免客戶端直接查詢。

(6) 擴展用途驗證
? 檢查證書的擴展字段(如 Extended Usage),確保證書類型適用于服務器身份認證(如 Server Authentication)。


3. 受信任的根證書來源
客戶端信任的根證書由以下途徑維護:

  1. 操作系統內置:
    ? Windows:通過系統更新自動同步微軟的根證書計劃(Windows Root Certificate Program)。

    ? macOS:鑰匙串訪問中預置的受信任根證書。

    ? Linux:發行版提供的根證書包(如 ca-certificates 包)。

  2. 瀏覽器內置:
    ? Chrome/Edge:使用操作系統的根證書庫。

    ? Firefox:獨立維護自己的根證書列表(NSS數據庫)。

  3. 用戶手動導入:
    ? 用戶可手動添加根證書(例如企業內網的自簽名證書),但存在安全風險。


4. 驗證失敗的常見原因
? 證書鏈不完整:服務器未發送中間CA證書,導致客戶端無法構建完整信任鏈。

? 根證書未預裝:證書由私有CA簽發,但客戶端未信任該CA。

? 域名不匹配:證書中的域名與訪問的域名不一致。

? 證書過期:證書已超過有效期。

? 吊銷狀態異常:證書已被CA吊銷,且OCSP/CRL檢查失敗。


5. 示例:Let’s Encrypt 的證書驗證

  1. Let’s Encrypt 使用中間CA(如 ISRG Root X1)簽發服務器證書。
  2. 客戶端檢查中間CA的簽名是否由根CA(如 DST Root CA X3ISRG Root X1)簽發。
  3. 根CA是否在客戶端的信任列表中?如果是,則驗證成功。

6. 總結
客戶端驗證的核心邏輯是:
“服務器證書的簽發路徑必須最終鏈接到客戶端信任的根CA,且所有中間環節均合法有效。”
如果任一環節失敗(如證書鏈斷裂、域名不匹配、吊銷狀態異常),客戶端會提示安全警告(如“您的連接不是私密連接”)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81196.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81196.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81196.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS即時通信的技術要點

iOS即時通信開發的關鍵技術要點總結: 一、通訊協議選擇 Socket通信 基礎實現:使用原生BSD Socket或CFNetwork框架(復雜),推薦第三方庫如CocoaAsyncSocket(封裝GCDAsyncSocket),簡化T…

智能AI構建工地安全網:跌倒、抽搐、區域入侵多場景覆蓋

智能AI在工地安全中的應用:從監測到救援的全流程實踐 一、背景:高溫作業下的工地安全挑戰 隨著夏季高溫持續,工地戶外作業環境面臨嚴峻考驗。工人因高溫疲勞、脫水或突發疾病引發的行為異常(如暈厥、抽搐、跌倒)頻發…

Doris

Apache Doris(原名:Palo)是一個高性能、實時的MPP分析型數據庫,非常適合海量數據的即席查詢、報表分析、指標統計等 OLAP 場景。Doris 的設計目標是:極致查詢性能、簡單易用、支持高并發分析和明細查詢。 一、Doris 核…

# 2-STM32F103-復位和時鐘控制RCC

STM32-復位和時鐘控制RCC 2-STM32-復位和時鐘控制RCC摘要說明本文參考資料如下: 一、STM32最小系統回顧STM32F103C8T6核心板原理圖 二、復位三、時鐘3.1 時鐘樹3.2 STM32啟動過程3.2 SystemInit()函數3.2.1 SystemInit()第1句:3.2.2 SystemInit()第2句&a…

rk3576 gstreamer opencv

安裝gstreamer rk3588使用gstreamer推流_rk3588 gstreamer-CSDN博客 rk3588使用gstreamer推流_rk3588 gstreamer-CSDN博客 Installing on Linux sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-pl…

Quic如何實現udp可靠傳輸

QUIC(Quick UDP Internet Connections)是由 Google 設計并被 IETF 標準化的傳輸層協議,它基于 UDP 實現,但提供了類似 TCP 的可靠性和更高級的功能(如多路復用、0-RTT 握手、TLS 加密等)。 盡管 UDP 是不可…

uniapp-商城-59-后臺 新增商品(屬性的選中,進行過濾展示,filter,some,every和map)

前面講了屬性的添加,添加完成后,數據庫中已經存在數據了,這時再繼續商品的添加時,就可以進行屬性的選擇了。 在商品添加過程中,屬性選擇是一個關鍵步驟。首先,界面需要展示嵌套的屬性數據,用戶通…

負載均衡 ELB 在 zkmall開源商城高流量場景下的算法優化

在電商大促、直播帶貨等高頻交易場景下,流量突發增長對系統穩定性提出嚴峻挑戰。ZKmll 開源商城通過對負載均衡 ELB(Elastic Load Balancer)算法的深度優化,結合業務場景特性設計動態加權輪詢 地域感知 熱點分流的混合策略&…

Linux干貨(三)

前言 從B站黑馬程序員Linux課程摘選的學習干貨,新手友好!若有侵權,會第一時間處理。 目錄 前言 1.which find命令 1.which命令 2.find命令 2.grep wc 管道符 1.grep命令 2.wc命令 3.管道符 3.echo tail 重定向符 1.echo命令 2.反…

Sigmoid與Softmax:從二分類到多分類的深度解析

Sigmoid與Softmax:從二分類到多分類的深度解析 聯系 函數性質:二者都是非線性函數 ,也都是指數歸一化函數,可將輸入值映射為0到1之間的實數 ,都能把輸出轉化成概率分布的形式,在神經網絡中常作為激活函數使用。Softmax是Sigmoid的推廣:從功能角度看,Softmax函數可視為…

文件系統交互實現

關于之前的搭建看QT控件文件系統的實現-CSDN博客,接下來是對本程序的功能完善,我想著是這樣設計的,打開一個目錄以后,鼠標選中一個項可以是目錄,也可以是文件,右鍵可以出現一個菜單選擇操作,比如…

[ctfshow web入門] web75

信息收集 啟用了open_basedir,所以之前的方法又不能用了 解題 cforeach(new DirectoryIterator("glob:///*") as $a){echo($a->__toString(). ); } ob_flush();cif ( $a opendir("glob:///*") ) {while ( ($file readdir($a)) ! false …

Vulfocus靶場-文件上傳-3

WSO2 文件上傳 (CVE-2022-29464) WSO2是一家成立于 2005 年的開源技術提供商。它提供了一個企業平臺,用于在本地和整個 Internet 上 集成應用程序編程接口(API)、應用程序和 Web 服務。 某些 WSO2 產品允許無限制的文件上傳和遠程代碼執行。…

基于MCP的橋梁設計規范智能解析與校審系統構建實踐

引言 今天本文準備盤一個大活,聊一聊偏特定行業一點的AI技術深入應用思考及實踐。 一、傳統設計行業項目背景與行業痛點 在橋梁設計領域,標準規范是設計的基礎,直接關系到橋梁結構的安全性、耐久性和經濟性。然而,傳統的規范應…

遠程連接電腦的方法?異地遠程桌面連接和三方軟件實現

遠程連接電腦,是指通過網絡技術,在一臺設備上操控另一臺設備的電腦桌面,實現跨地域的操作和管理。在日常工作、技術支持、遠程辦公等場景中,遠程連接電腦都發揮著重要作用。實現遠程連接電腦主要有系統自帶工具和第三方軟件兩種方…

win11 安裝 wsl ubuntu 18.04后換源失敗!

記錄幾個問題是如何解決的。 一 下載wsl后,有報錯: Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x8007019e Error: 0x8007019e ??????? Linux ? Windows ???? Press any key to continue... …

PY32系列單片機離線燒錄器,可配置選項字節和上機臺批量燒錄

PY32離線燒錄器采用 MINI-USB 接口,提供穩定的物理連接。設備與電腦采用串口方式通訊,波特率固定為 1M。需配合我們的上位機使用。PY32離線燒錄器現支持芯片型號在PY32F002A/002B/002/003/030/071/072/040/403/303各封裝和XL32F001/003。燒錄器僅提供 3.…

深入理解 this 指向與作用域解析

引言 JavaScript 中的 this 關鍵字的靈活性既是強大特性也是常見困惑源。理解 this 的行為對于編寫可維護的代碼至關重要,但其動態特性也會讓我們感到困惑。 與大多數編程語言不同,JavaScript 的 this 不指向函數本身,也不指向函數的詞法作…

# IntelliJ IDEA企業版開發入門:包、類與項目結構詳解

--- ## 一、項目結構與包的概念 ### 1. 標準項目目錄解析 在IntelliJ IDEA中,一個Java項目通常包含以下核心目錄: - **src**:源代碼根目錄。 - **main**:主代碼目錄,存放業務邏輯代碼。 - **java**:Java…

NGINX 開源與社區動態:從基石到浪潮,持續演進的生態力量

NGINX 之所以能夠成為全球應用最為廣泛的 Web 服務器和反向代理軟件之一,其成功的核心驅動力無疑是開源。開放的源代碼、活躍的社區參與以及透明的開發過程,共同鑄就了 NGINX 的輝煌。然而,正如所有大型開源項目一樣,NGINX 的開源之路也并非一帆風順,其社區動態也時常涌現…