當我們打開一個網站時,瀏覽器和伺服器之間其實會有一段「握手過程」,用來確認雙方的身份並建立加密連線。在這個過程中,最關鍵的就是 網頁憑證(SSL/TLS 憑證)。
昨天講的第一次連線到網頁後記錄HSTS那個是在cache上面,與憑證不同。
網頁憑證就像是網站的「身分證」。
憑證由憑證頒發機構(CA, Certificate Authority) 所簽發,用來證明這個網站的域名是真實的,並非有人冒充。同時讓使用者端(瀏覽器)可以用來建立加密通道,確保資料在傳輸過程中不會被竊聽或竄改。
一張標準的 SSL/TLS 憑證通常包含:
網站的網域名稱(CN, Common Name / SAN, Subject Alternative Name):代表這張憑證是發給哪個網站用的。
持有者資訊:例如公司名稱、組織單位。
公鑰(Public Key):用來加密資料。
簽發者資訊:是哪一家 CA 簽發的。
有效期限:通常 90 天到 1 年不等。
數位簽章:由 CA 簽署,保證憑證內容沒有被竄改。
沒有憑證的網站只能透過 HTTP 連線,資料是明文傳輸,很容易被攔截、竊聽甚至竄改。
有了憑證後,網站可以使用 HTTPS:
加密傳輸:避免密碼、信用卡號等敏感資訊被偷看。
身份驗證:確認使用者連線的真的是該網站,而不是釣魚網站。
資料完整性:確保傳輸過程中內容沒有被動手腳。
憑證常見種類
DV(Domain Validation)憑證:只驗證域名,最常見且價格便宜(如 Let’s Encrypt 免費憑證)。
OV(Organization Validation)憑證:除了驗證域名,還驗證公司組織的合法性。
EV(Extended Validation)憑證:最嚴格的驗證流程,會在瀏覽器地址列顯示公司名稱,常見於銀行或大型電商。
瀏覽器如何驗證憑證?
瀏覽器在連線時會:
收到伺服器送來的憑證。
檢查憑證是否過期。
確認憑證上的網域與使用者輸入的網址是否一致。
驗證 CA 是否可信(必須在瀏覽器的「信任憑證庫」內)。
確認數位簽章正確。
若其中任何一步失敗,瀏覽器就會跳出「連線不安全」的警告。