什麼是 Let's Encrypt?
Let's Encrypt 是免費的憑證授權單位(CA)。它自動並免費核發讓網站啟用 https 的憑證,也是如今多數網路流量都已加密的原因。
與工程師談談 知識庫
它是什麼
Let's Encrypt 由非營利組織 Internet Security Research Group 營運,自 2015 年開始核發憑證。其憑證受到所有主要瀏覽器與作業系統信任。它們是僅驗證網域的 SSL 憑證:Let's Encrypt 只檢查您是否控制該網域,其他什麼都不檢查。
運作方式
沒有表單要填,也不需要付費給任何人。伺服器上稱為 ACME 用戶端的軟體向 Let's Encrypt 申請憑證。Let's Encrypt 回覆一項挑戰,要求證明對網域的控制權,方式可以是伺服器必須在指定位址發布一個檔案,或是在 DNS 中出現某筆記錄。證明通過後,憑證即核發並安裝。同一套軟體會在憑證到期前為其續期。
- Certbot:最知名的用戶端,由 Electronic Frontier Foundation 維護。
- 內建支援:Caddy 與 Traefik 等網頁伺服器與代理、多數主機控制面板,以及 OPNsense 等防火牆,都能自行申請憑證。
- 在 Kubernetes 中:cert-manager 為 Kubernetes 叢集內的服務申請並續期憑證。
倚賴它之前該知道的事
- 刻意設計為短效期:憑證的有效期一直是 90 天,而 Let's Encrypt 正朝更短的期限邁進。續期必須自動進行。手動續期的憑證終究會被遺忘。
- 萬用字元憑證需要 DNS:涵蓋每個子網域的憑證只能透過 DNS 記錄來證明,因此用戶端需要存取您的 DNS 服務商。
- 內部系統:無法從網際網路連到的伺服器,只要使用真實的網域名稱,仍可透過 DNS 方式取得憑證。
- 頻率限制:一個網域在一段期間內能申請的憑證數量有限制。正常使用不會碰到,但設定錯誤的指令碼可能會。
- 不驗證公司:它不核發組織驗證(OV)或延伸驗證(EV)憑證。很少網站需要它們。
- 留意續期:當 DNS 變動、防火牆規則改動或伺服器重建時,自動續期會悄悄失敗。請監控到期日。
KawaConnect 如何處理 Let's Encrypt
在我們建置的 Linux 伺服器、反向代理與 Kubernetes 叢集上,我們使用 Let's Encrypt 憑證,續期自動化並監看到期日。當網站位於 Cloudflare 之後時,訪客所見的憑證來自 Cloudflare,伺服器上的憑證則另行處理。我們會記錄每個系統使用的方法,以便快速追查續期問題。
相關服務
瞭解更多
- Let's Encrypt該專案自己的網站,提供文件、狀態,以及關於憑證效期的公告。
- Let's Encrypt 如何運作逐步說明挑戰與核發流程。
- Certbot針對特定網頁伺服器與作業系統取得憑證的說明。
- cert-manager 文件Kubernetes 內部處理憑證的標準工具。
- 維基百科上的 Let's Encrypt該專案的歷史、贊助者與規模。