Skip to content

域名、DNS 與 HTTPS

前言

當你在瀏覽器輸入 www.google.com 並按下 Enter,背後發生了什麼? 這個看似簡單的動作,背後涉及域名解析、DNS 查詢、TLS 加密交握等一系列精密的協作過程。理解這些機制,是每個開發者的必修課——它直接關係到你的網站能不能被存取、資料會不會被竊取。

這篇文章會帶你學什麼?

學完這章後,你將獲得:

  • DNS 原理:理解域名如何被翻譯成 IP 位址的完整過程
  • 記錄類型:掌握 A、CNAME、MX 等常見 DNS 記錄的用途
  • HTTPS 機制:理解 TLS 交握如何建立安全連線
  • 憑證體系:了解數位憑證的信任鏈和驗證機制
  • 安全意識:明白為什麼 HTTPS 是現代 Web 的底線要求
章節內容核心概念
第 1 章DNS 解析遞迴查詢、迭代查詢
第 2 章DNS 記錄A、CNAME、MX、TXT
第 3 章HTTPS 與 TLS交握過程、加密通訊
第 4 章憑證信任鏈CA、根憑證、中間憑證
第 5 章HTTP vs HTTPS明文 vs 加密、安全對比

0. 全景圖:從域名到安全連線

網際網路的通訊基於 IP 位址(如 142.250.80.46),但人類記不住這些數字。於是我們發明了域名系統(DNS)——網際網路的「電話簿」,把人類可讀的域名翻譯成機器可讀的 IP 位址。

但光能找到伺服器還不夠。如果通訊內容是明文傳輸的,任何中間人都能竊聽、竄改你的資料。HTTPS 就是解決這個問題的——它在 HTTP 之上加了一層 TLS 加密,確保資料在傳輸過程中的機密性和完整性。

一次完整的網頁存取

  1. 域名解析:瀏覽器問 DNS「www.google.com 的 IP 是多少?」,DNS 回答「142.250.80.46」
  2. TCP 連線:瀏覽器與伺服器建立 TCP 三次交握
  3. TLS 交握:雙方協商加密演算法、驗證憑證、交換金鑰
  4. 加密通訊:所有 HTTP 資料透過加密通道傳輸

1. DNS 解析:網際網路的「電話簿」

DNS(Domain Name System)的工作原理就像查電話簿:你知道對方的名字(域名),需要查到對方的電話號碼(IP 位址)。但網際網路的「電話簿」不是一本,而是一個分層的分散式系統。

🔍 DNS Resolution Simulator

🌐
Browser cache
💻
OS cache
🔄
Recursive resolver
🌍
Root name server
📂
TLD server
🏠
Authoritative DNS server
Resolution flow: When the browser visits a website, it first translates the domain name into an IP address. This process checks multiple caches and servers until the matching IP is found.

DNS 解析的四個步驟

  1. 瀏覽器快取:先查本機快取,如果之前存取過這個域名,直接用快取的 IP
  2. 遞迴解析器:快取沒命中,請求發給 ISP 的遞迴解析器(如 8.8.8.8)
  3. 逐級查詢:遞迴解析器依次詢問根域名伺服器 → 頂級域伺服器(.com)→ 權威域名伺服器(google.com)
  4. 回傳結果:權威伺服器回傳最終 IP,遞迴解析器快取結果並回傳給瀏覽器
層級伺服器職責數量
根域Root Server知道所有頂級域的位址全球 13 組
頂級域TLD Server管理 .com、.cn、.org 等每個後綴一組
權威域Authoritative儲存具體域名的 DNS 記錄每個域名至少 2 個
遞迴解析器Resolver代替使用者完成整個查詢過程ISP 或公共 DNS

2. DNS 記錄類型:域名背後的「設定表」

DNS 不只是把域名翻譯成 IP。透過不同類型的 DNS 記錄,你可以控制郵件投遞、域名跳轉、服務發現等多種行為。理解這些記錄類型,是設定域名和排查網路問題的基礎。

📋 DNS Record Type Cheatsheet

AAddress record

Maps a domain name to an IPv4 address. This is the most common DNS record type and is ultimately what browsers need when visiting a site.

Example record
example.com. IN A 93.184.216.34
Common uses
  • Point a website domain to a server IP
  • Point subdomains to different servers
  • Return multiple IPs for load balancing
Tip: DNS does more than translate domains into IP addresses. It also supports mail routing, domain verification, load balancing, and other features through different record types.
記錄類型用途範例
A域名 → IPv4 位址example.com → 93.184.216.34
AAAA域名 → IPv6 位址example.com → 2606:2800:220:1:...
CNAME域名 → 另一個域名(別名)www.example.com → example.com
MX指定郵件伺服器example.com → mail.example.com
TXT儲存文字資訊SPF 驗證、域名所有權驗證
NS指定權威域名伺服器example.com → ns1.example.com

實際場景中的 DNS 設定

  • 部署網站:添加 A 記錄指向伺服器 IP,或 CNAME 指向 CDN 域名
  • 設定郵箱:添加 MX 記錄指向郵件伺服器,TXT 記錄設定 SPF/DKIM 防垃圾郵件
  • 驗證域名所有權:雲服務商要求你添加特定 TXT 記錄來證明你擁有這個域名
  • 負載均衡:同一域名設定多條 A 記錄,DNS 輪詢分發流量

3. HTTPS 與 TLS:給資料穿上「防彈衣」

HTTP 協定的資料是明文傳輸的——就像寄明信片,郵遞員(中間人)可以隨意閱讀內容。HTTPS 在 HTTP 之上加了一層 TLS(Transport Layer Security)加密,相當於把明信片裝進了密封信封。

TLS 交握是建立安全連線的關鍵步驟,它在正式傳輸資料之前,完成身份驗證和金鑰協商。

🤝 TLS Handshake Demo

💻
Client (browser)
Client Hello
Send supported TLS versions, cipher suites, and random number
Server Hello
Choose TLS version, cipher suite, and server random number
Certificate
Server sends its digital certificate with public key
Key Exchange
Both sides negotiate and generate a session key
Finished
Both sides confirm the handshake and start encrypted communication
🖥️
Server

TLS 1.3 交握的核心步驟

  1. Client Hello:用戶端傳送支援的加密演算法清單和一個隨機數
  2. Server Hello:伺服器選擇加密演算法,回傳數位憑證和隨機數
  3. 憑證驗證:用戶端驗證伺服器憑證是否可信(檢查 CA 簽章、有效期、域名匹配)
  4. 金鑰交換:雙方透過 ECDHE 演算法協商出一個共享金鑰(不在網路上傳輸金鑰本身)
  5. 加密通訊:後續所有資料使用協商好的對稱金鑰加密傳輸
特性TLS 1.2TLS 1.3
交握手往返次數2-RTT1-RTT(首次)/ 0-RTT(恢復)
金鑰交換RSA 或 ECDHE僅 ECDHE(前向安全)
加密演算法支援較多舊演算法僅保留安全演算法
效能較慢更快

4. 憑證信任鏈:憑什麼相信這個網站?

TLS 交握中最關鍵的一步是「憑證驗證」。瀏覽器怎麼判斷一個網站的憑證是真的,而不是攻擊者偽造的?答案是憑證信任鏈——一個層層背書的信任體系。

🔗 Certificate Trust Chain

Click each certificate layer to inspect its details and role in the trust chain.

🏛️
Root Certificate (Root CA)
Starting point of trust
issues
🏢
Intermediate Certificate (Intermediate CA)
Bridge of trust
issues
🌐
Server Certificate
Website identity card
🏛️Root Certificate (Root CA)
IssuerDigiCert Global Root G2 (self-signed)
Validity25 years (2013 - 2038)
Key lengthRSA 2048-bit
StorageOS/browser built-in trust store
ScaleAbout 150 trusted root certificates globally
The root certificate is the anchor of the whole trust chain. It is self-signed by a root certificate authority and preinstalled in operating systems and browsers. Only a small number of root CAs exist globally, protected by strict audits and physical security. Root CA private keys are usually stored offline in hardware security modules.
🔍 Browser Verification Flow
1Browser receives the server certificate and reads issuer information.
2It finds the intermediate certificate and verifies the server certificate signature with the intermediate CA public key.
3It then verifies the intermediate certificate signature with the root CA public key.
4It confirms the root certificate exists in the local trust store, so the whole chain is valid.

憑證信任鏈的三層結構

  1. 根憑證(Root CA):由受信任的憑證頒發機構簽發,預裝在作業系統和瀏覽器中。這是信任的「錨點」。
  2. 中間憑證(Intermediate CA):由根 CA 簽發,用於簽發終端憑證。根 CA 不直接簽發網站憑證,是為了安全隔離。
  3. 終端憑證(Leaf Certificate):你的網站實際使用的憑證,由中間 CA 簽發,包含域名、公鑰、有效期等資訊。
憑證類型驗證級別頒發速度適用場景
DV(域名驗證)僅驗證域名所有權分鐘級個人網站、部落格
OV(組織驗證)驗證組織身份數天企業官網
EV(延伸驗證)嚴格驗證組織數週銀行、金融機構
萬用字元憑證覆蓋所有子域名視類型而定多子域名場景

5. HTTP vs HTTPS:為什麼加密是底線?

2024 年,全球超過 95% 的網頁流量已經透過 HTTPS 傳輸。Chrome 瀏覽器會對 HTTP 網站標記「不安全」警告,搜尋引擎也會降低 HTTP 網站的排名。HTTPS 不再是「可選項」,而是現代 Web 的底線要求。

🔐 HTTP vs HTTPS Data Transfer

💻
Browser
Original data
password=MySecret123&user=zhangsan
🔓 Plaintext transfer
🕵️
A man-in-the-middle can eavesdrop
🖥️
Server
ItemHTTPHTTPS
Port80443
Data encryptionNone (plaintext)TLS symmetric encryption
Identity verificationNoneCA certificate verifies server identity
Data integrityNo guaranteeMAC check prevents tampering
SEO impactSearch engines may rank it lowerPreferred by search engines
Performance costNo extra overheadTLS handshake adds about 1-2 RTT
維度HTTPHTTPS
資料傳輸明文,可被竊聽加密,無法被竊聽
身份驗證無,無法確認伺服器身份有,透過憑證驗證伺服器
資料完整性無保護,可被竄改有保護,竄改會被偵測
連接埠80443
SEO 影響搜尋排名降低搜尋排名加分
瀏覽器表現顯示「不安全」警告顯示鎖圖示

免費取得 HTTPS 憑證

Let's Encrypt 是一個免費、自動化的憑證頒發機構,讓任何網站都能零成本啟用 HTTPS。搭配 Certbot 工具,可以一鍵申請和自動續期憑證。大多數雲平台和 CDN 服務商也提供免費的 SSL 憑證。


總結

域名、DNS 和 HTTPS 是網際網路基礎設施的三大支柱。DNS 讓我們用人類可讀的名字存取網站,HTTPS 確保通訊過程安全可信。

回顧本章的關鍵要點:

  1. DNS 是分層系統:根域 → 頂級域 → 權威域,逐級查詢,快取加速
  2. 記錄類型各有用途:A 記錄指向 IP,CNAME 做別名,MX 管郵件,TXT 做驗證
  3. TLS 交握建立信任:憑證驗證 + 金鑰協商,TLS 1.3 只需 1-RTT
  4. 憑證信任鏈:根 CA → 中間 CA → 終端憑證,層層背書
  5. HTTPS 是底線:免費憑證(Let's Encrypt)讓加密零門檻

延伸閱讀