Skip to content
All writing Part 01 of 06 · 一張遷移單背後的 PKI 與 TLS
Engineering · 1 min read

TLS 基礎,以及為什麼有三個憑證檔

TLS 做兩件事:加密與身分。身分需要三個檔案,不是一個。root_ca 驗別人、certificate 加 private_key 證明自己,這篇拆解這個分工。

先講名詞。TLS(舊名 SSL)是替一條網路連線加上安全性的協定。它做兩件互相獨立的事,分開記會清楚很多:

  • 加密:兩端在一段很短的「握手」過程裡談好一把共用的秘密金鑰,再用它把流量打亂,讓中間的人看不懂。
  • 身分:每一端都能用一張憑證證明自己是誰。憑證是一份數位身分文件,由一個大家都信任的簽發機構(CA,憑證頒發機構)簽名背書。

握手講白話大概是:客戶端打招呼,伺服器送出自己的憑證,客戶端確認這張憑證是由它信任的 CA 簽的,兩端各自推導出同一把秘密金鑰(全程不必把金鑰送出去),然後才開始傳真正的、加密過的資料。

真正讓人卡住的是:身分需要三個檔案,不是一個。它們長得很像,其實各司其職:

root_ca.pem 驗證「對方」 信任錨點 非機密 certificate.pem 你的公開身分 由 CA 簽發 非機密 private_key.pem 證明身分是你的 絕不送出 機密
驗證對方用 root_ca;證明自己用 certificate 加 private_key。三個之中只有私鑰是機密。
檔案是什麼是機密?
root_ca.pem信任錨點:用來驗證對方那張憑證是不是真的
certificate.pem你自己的公開身分,由 CA 簽發
private_key.pem對應的私鑰,證明這身分真的是你的(絕不送出)

一句話記法:驗證對方用 root_ca,證明自己用 certificateprivate_key。(.pem 只是存放這些東西的一種常見文字格式。)

這次遷移裡: 部署會把這三個檔案放到 pixel-service 旁邊,讓它能對 9093 埠的 Kafka 伺服器講 TLS。private_key.pem 一旦外洩,等於把你的身分交出去,所以驗證腳本跑完會把它刪掉。

root_ca 驗別人,certificateprivate_key 證明自己。角色搞混就什麼都連不上。


參考來源

延伸閱讀: 這三個檔案正是讓 Kafka 客戶端的 SSL 設定能運作的東西;至於出示一張憑證還是兩張,差別在單向 vs 雙向 TLS。回到總覽:一張遷移單背後的兩個 SSL

Tags #tls #security
// connect

Be brave | Be wise | Be grateful

21 BreakinCode

// elsewhere
LinkedInMedium (lang: en)Youtube
wh:~$William Hung· © 2026 Taipei · GMT+8 · Available for collaboration