Http證書體系及證書加密流程(通信流程)

一、HTTPS 證書體系:信任的基石

HTTPS 證書體系是保障網絡通信安全的核心機制,其本質是一套基于公鑰基礎設施(PKI,Public Key Infrastructure)?的信任體系,通過數字證書實現通信雙方的身份驗證和數據加密,確保信息在傳輸過程中不被篡改、竊取或偽造。

證書體系全景圖

  • 根證書極少更新,換根等于“換操作系統”;因此 CA 用中間證書簽名,一旦中間私鑰泄露,吊銷中間證書即可,根證書仍安全。

  • 一張服務器證書里其實會帶 1~3 張中間證書,瀏覽器會自動拼鏈;如果鏈拼不齊,就會報 “證書鏈不完整”。

  1. 核心角色
    • 證書持有者(服務器 / 客戶端):通常是網站服務器,需要向權威機構申請證書,以證明自身身份的合法性。證書中包含持有者的公鑰、域名、有效期等關鍵信息。
    • 證書頒發機構(CA,Certificate Authority):公認的權威第三方機構(如 Let’s Encrypt、DigiCert、GlobalSign 等),負責審核證書申請者的身份,并為其頒發經過數字簽名的證書。CA 自身擁有根證書(Root Certificate),是整個信任體系的 “根”。
    • 信任鏈(證書鏈):由于根證書直接預裝在操作系統或瀏覽器中(如 Windows、macOS、Chrome 等),具有最高信任級別,而 CA 通常不會直接用根證書簽名用戶證書(避免根證書泄露風險),而是通過 “中間證書(Intermediate Certificate)” 層級簽名。最終形成 “根證書→中間證書→用戶證書” 的信任鏈,瀏覽器通過驗證鏈條的完整性確認證書有效性。
    • 證書吊銷列表(CRL,Certificate Revocation List)?與在線證書狀態協議(OCSP,Online Certificate Status Protocol):當證書因私鑰泄露、域名變更等原因失效時,CA 會將其列入 CRL 或通過 OCSP 標記為吊銷,瀏覽器在驗證證書時會檢查狀態,避免使用無效證書。
    • 把證書當成“電子身份證”:名字、照片、有效期、發證機關、防偽水印,一個都不能少。

  • Subject 里不僅放域名,還會放組織名(OV/EV 證書),瀏覽器地址欄的小鎖→點擊“證書”即可查看。

  • Signature 是 CA 用自己的私鑰給證書全文做的哈希簽名,瀏覽器用 CA 公鑰驗證哈希值一致即“未被篡改”。

  1. 證書的核心內容
    一份標準的 X.509 格式數字證書包含:
    • 證書持有者信息(如域名、組織名稱、國家 / 地區等);
    • 證書持有者的公鑰(用于加密傳輸對稱密鑰);
    • 頒發機構(CA)的信息;
    • CA 對證書的數字簽名(用 CA 的私鑰加密,可通過 CA 公鑰驗證,確保證書未被篡改);
    • 證書的有效期(起始時間和截止時間,過期后需重新申請);
    • 證書序列號(唯一標識,用于查詢狀態)等。
  2. 證書的類型
    • 域名驗證型(DV,Domain Validated):僅驗證域名所有權(如通過郵箱或 DNS 解析記錄),審核簡單, issuance 快,適合個人網站或小型應用,僅顯示域名信息。
    • 組織驗證型(OV,Organization Validated):除驗證域名外,還需審核組織的合法性(如營業執照、地址等),證書中包含組織名稱,可信度更高,適合企業網站。
    • 擴展驗證型(EV,Extended Validation):最高級別驗證,需通過嚴格的法律、運營、物理地址等多重審核,瀏覽器地址欄會顯示綠色鎖標及組織名稱(如銀行、電商平臺),安全性和可信度最強。

二、HTTPS 證書加密流程(通信流程):從握手到加密傳輸

HTTPS 的通信安全依賴于SSL/TLS 協議(SSL 是 TLS 的前身,目前主流為 TLS 1.2/1.3),其核心是通過 “非對稱加密” 協商對稱密鑰,再用 “對稱加密” 傳輸數據,同時通過證書實現身份驗證。完整流程可分為TCP 三次握手SSL/TLS 握手兩部分,其中 SSL/TLS 握手是證書發揮作用的核心階段。

1. 前置:TCP 三次握手

HTTPS 基于 TCP 協議,通信前需先完成 TCP 連接建立:

  • 客戶端向服務器發送 “SYN” 報文,請求建立連接;
  • 服務器回復 “SYN+ACK” 報文,確認請求并發起自身連接請求;
  • 客戶端回復 “ACK” 報文,確認服務器的請求,TCP 連接建立。
2. SSL/TLS 握手:證書與密鑰的 “安全協商”

以 TLS 1.2 為例(TLS 1.3 流程更簡化,減少交互步驟),握手過程需客戶端與服務器交換信息,完成身份驗證、密鑰協商,最終生成用于加密數據的 “會話密鑰”。

  • 步驟 1:客戶端 Hello(Client Hello)
    客戶端向服務器發送信息,包括:

    • 支持的 SSL/TLS 版本(如 TLS 1.2);
    • 支持的加密套件列表(如 ECDHE-RSA-AES256-GCM-SHA384,包含密鑰交換算法、對稱加密算法、哈希算法);
    • 客戶端生成的隨機數(Client Random),用于后續密鑰計算;
    • 會話 ID(若復用之前的會話,可省略部分步驟)。
  • 步驟 2:服務器 Hello(Server Hello)
    服務器收到客戶端請求后,選擇雙方都支持的配置并回復:

    • 確認使用的 SSL/TLS 版本和加密套件(如選中 ECDHE-RSA-AES256-GCM-SHA384);
    • 服務器生成的隨機數(Server Random),與客戶端隨機數共同用于密鑰計算;
    • 會話 ID(同客戶端,或新建會話)。
  • 步驟 3:服務器發送證書(Certificate)
    服務器將自身的數字證書(包含公鑰、域名、有效期、CA 簽名等)發送給客戶端。若證書由中間 CA 頒發,還需附帶中間證書,形成完整的信任鏈。

  • 步驟 4:客戶端驗證證書合法性
    客戶端收到證書后,需通過以下步驟驗證證書有效性(核心環節):

    1. 檢查證書格式與完整性:驗證證書是否符合 X.509 標準,是否被篡改(通過 CA 的數字簽名,用 CA 公鑰解密簽名后與證書哈希值比對,一致則未篡改)。
    2. 驗證信任鏈:從服務器證書向上追溯,通過中間證書最終驗證到根證書(根證書預裝在客戶端,默認可信),若鏈條斷裂(如中間證書缺失或無效),則證書不被信任。
    3. 檢查證書有效期:確認證書當前時間在 “起始時間” 和 “截止時間” 之間,過期證書無效。
    4. 驗證域名匹配:證書中記錄的域名需與當前訪問的域名一致(或符合通配符規則,如 *.example.com匹配a.example.com),否則視為 “域名不匹配”,瀏覽器提示風險。
    5. 檢查證書吊銷狀態:通過 CRL 或 OCSP 查詢證書是否被吊銷(如私鑰泄露后 CA 會吊銷證書),若已吊銷則拒絕信任。

    若以上驗證均通過,客戶端確認服務器身份合法;若驗證失敗,瀏覽器會彈出警告(如 “證書無效”“連接不安全”),用戶可選擇是否繼續(存在風險)。

  • 步驟 5:客戶端生成預主密鑰(Pre-Master Secret)并加密傳輸
    客戶端生成一個隨機數(Pre-Master Secret),用服務器證書中的公鑰(非對稱加密)?加密后發送給服務器。由于只有服務器擁有對應的私鑰,因此只有服務器能解密得到 Pre-Master Secret(防止第三方竊取)。

  • 步驟 6:雙方計算會話密鑰(Master Secret)
    客戶端和服務器分別使用之前交換的 Client Random、Server Random,以及解密得到的 Pre-Master Secret,通過相同的算法(如 PRF 函數)計算出會話密鑰(對稱密鑰)。此時雙方擁有相同的會話密鑰,后續通信將使用該密鑰進行對稱加密(效率更高)。

  • 步驟 7:客戶端與服務器確認加密通信就緒

    • 客戶端發送 “Change Cipher Spec” 報文,告知服務器后續數據將用會話密鑰加密;
    • 客戶端發送 “Finished” 報文(用會話密鑰加密),包含之前握手信息的哈希值,供服務器驗證。
    • 服務器接收后,同樣發送 “Change Cipher Spec” 和 “Finished” 報文(用會話密鑰加密),客戶端驗證通過后,SSL/TLS 握手完成。
3. 加密數據傳輸

握手完成后,客戶端與服務器進入加密通信階段:

  • 所有數據通過會話密鑰(對稱加密,如 AES)?加密后傳輸,第三方即使截獲數據,因沒有會話密鑰也無法解密。
  • 同時,通過哈希算法(如 SHA)對數據進行完整性校驗,確保傳輸過程中數據未被篡改(若篡改,哈希值不匹配,接收方會拒絕)。
4. 會話結束

通信完成后,雙方通過 “Close Notify” 報文結束會話,會話密鑰失效(若后續重連,可通過會話 ID 復用部分握手步驟,提高效率)。

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

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

相關文章

【分布式架構】學習路徑概述:了解分布式系統的核心問題、解決方案與實戰說明

文章目錄零、前言一、分布式系統理論1、 分布式系統的一致性問題1.1、一致性問題理論(CAP/BASE)1.2、 一致性協議與算法(Paxos/Raft):選主、分布式鎖1.3、 分布式事務(2PC\3PC\TCC):服務一致性保障與性能2、…

C# 密封類_密封方法 (seadled 關鍵字)

C#允許將類聲明為密封類,密封類不能被繼承在什么場景用?答:防止重寫某些類導致代碼混亂密封類seadled 聲明密封類的關鍵字//seadled 聲明密封類的關鍵字 //密封類不能被繼承 sealed class Class1 {public int age;public string name;publi…

深度學習(魚書)day04--手寫數字識別項目實戰

深度學習(魚書)day04–手寫數字識別項目實戰 魚書的相關源代碼下載: 點擊鏈接:http://www.ituring.com.cn/book/1921 點擊“隨書下載” 第三項就是源代碼: 解壓后,在pycharm(或其它IDE&#…

【自用】NLP算法面經(6)

一、FlashAttention 1、Tile-Based計算 將q,k,v分塊為小塊,每次僅處理一小塊: 利用gpu的片上SRAM完成QK^T和softmax避免中間結果寫入HBM 標準attention的計算算法如下:標準attention實現大量中間結果需要頻繁訪問HBM,而HBM的訪問速…

Vue頁面卡頓優化:從理論到實戰的全面解釋

目錄 1. 理解Vue頁面卡頓的幕后黑手 1.1 響應式系統的“雙刃劍” 1.2 虛擬DOM的“隱藏成本” 1.3 瀏覽器渲染的“性能陷阱” 實戰案例:一個“罪魁禍首”的排查 2. 優化響應式系統:讓數據“輕裝上陣” 2.1 使用v-if和v-show控制渲染 2.2 凍結靜態數據 2.3 精細化響應式…

從0開始學linux韋東山教程Linux驅動入門實驗班(6)

本人從0開始學習linux,使用的是韋東山的教程,在跟著課程學習的情況下的所遇到的問題的總結,理論雖枯燥但是是基礎。本人將前幾章的內容大致學完之后,考慮到后續驅動方面得更多的開始實操,后續的內容將以韋東山教程Linux驅動入門實…

高性能反向代理與負載均衡 HAProxy 與 Nginx

在現代高并發 Web 架構中,HAProxy 和 Nginx 是兩個非常重要的工具。它們在反向代理、負載均衡、SSL 終止、緩存、限流等方面發揮著關鍵作用。 一、HAProxy 與 Nginx 簡介 1. HAProxy 簡介 HAProxy(High Availability Proxy) 是一個使用 C …

AI安全“面壁計劃”:我們如何對抗算法時代的“智子”封鎖?

> 在算法窺視一切的今天,人類需要一場數字世界的“面壁計劃” 2025年,某醫院部署的AI分診系統被發現存在嚴重偏見:當輸入相同癥狀時,系統為白人患者分配急診通道的概率是黑人患者的**1.7倍**。調查發現,訓練數據中少數族裔樣本不足**15%**,導致AI在“認知”上形成了結…

數據庫數據恢復—報錯“system01.dbf需要更多的恢復來保持一致性”的Oracle數據恢復案例

Oracle數據庫故障: 某公司一臺服務器上部署Oracle數據庫。服務器意外斷電導致數據庫報錯,報錯內容為“system01.dbf需要更多的恢復來保持一致性”。該Oracle數據庫沒有備份,僅有一些斷斷續續的歸檔日志。Oracle數據庫恢復流程: 1、…

Spring Cloud Gateway 服務網關

Spring Cloud Gateway是 Spring Cloud 生態系統中的一個 API 網關服務,用于替換由Zuul開發的網關服務,基于Spring 5.0Spring Boot 2.0WebFlux等技術開發,提供了網關的基本功能,例如安全、監控、埋點和限流等,旨在為微服…

[數據結構]#6 樹

樹是一種非線性的數據結構,它由節點組成,并且這些節點之間通過邊連接。樹的每個節點可以有一個或多個子節點,并且有一個特殊的節點叫做根節點(沒有父節點)。樹在計算機科學中應用廣泛,尤其是在數據庫索引、…

車輛網絡安全規定之R155與ISO/SAE 21434

隨著科技的不斷進步,車輛已經從傳統的機械裝置演變為高度智能化的移動終端。現代汽車不僅配備了先進的駕駛輔助系統(ADAS)、車載信息娛樂系統(IVI),還具備聯網功能,能夠實現遠程診斷、自動駕駛、…

Go語言實戰案例-合并多個文本文件為一個

以下是《Go語言100個實戰案例》中的 文件與IO操作篇 - 案例21:合并多個文本文件為一個 的完整內容,適用于初學者學習文件讀取與寫入的綜合運用。🎯 案例目標使用 Go 語言將指定目錄下的多個 .txt 文件,合并成一個新的總文件。&…

基坑滲壓數據不準?選對滲壓計能實現自動化精準監測嗎?

一、滲壓監測的背景 滲壓計是一種專門用于測量構筑物內部孔隙水壓力或滲透壓力的傳感器,適用于長期埋設在水工結構物或其它混凝土結構物及土體內,以測量結構物或土體內部的滲透(孔隙)水壓力。 在水利工程中,大壩、水庫…

Linux網絡:阿里云輕量級應用服務器配置防火墻模板開放端口

1.問題介紹在使用Udp協議或其他協議進行兩臺主機或同一臺主機通信時,常常會出現bind成功,但是在客戶端向服務端發送數據后,服務端無響應的情況,如果使用輕量級應用服務器,大概率是服務器的端口因為防火墻未對公網IP開放…

《 Spring Boot整合多數據源:分庫業務的標準做法》

🚀 Spring Boot整合多數據源:分庫業務的標準做法 文章目錄🚀 Spring Boot整合多數據源:分庫業務的標準做法🔍 一、為什么需要多數據源支持?💡 典型業務場景?? 二、多數據源集成方案對比&#…

前端ApplePay支付-H5全流程實戰指南

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔前言近期公司開展關于蘋果支付的相關業務,與之前不同的是,以前后臺直接獲取第三方Wallet封裝好的接口獲取支付地址,H5頁面直接跳轉使用Appl…

Flink窗口:解鎖流計算的秘密武器

Flink 窗口初識在大數據的世界里,數據源源不斷地產生,形成了所謂的 “無限數據流”。想象一下,網絡流量監控中,每一秒都有海量的數據包在網絡中穿梭,這些數據構成了一個無始無終的流。對于這樣的無限數據流&#xff0c…

Java排序算法之<希爾排序>

目錄 1、希爾排序介紹 1.1、定義 1.2、核心思想 2、希爾排序的流程 第 1 輪:gap 4 第 2 輪:gap 2 第 3 輪:gap 1 3、希爾排序的實現 4、時間復雜度分析 5、希爾排序的優缺點 6、適用場景 前言 希爾排序(Shell Sort&…

c++加載qml文件

這里展示了c加載qml文件的三種方式以及qml文件中根節點的訪問準備在創建工程的初期,遇到了一個問題,cmake文件以前都是系統自動生成的,不需要我做過多的操作修改,但是,加載qml的程序主函數是需要用到QGuiApplication&a…