Let's Encrypt

Let's Encrypt是由網際網路安全研究小組（ISRG）運營的非營利性證書頒發機構，免費提供傳輸層安全性協定（TLS）加密的X.509證書。它是世界上最大的證書頒發機構，超過3億個網站使用其服務，其目標是確保所有網站的安全並使用HTTPS。提供該服務的網際網路安全研究小組（ISRG）是一個公益組織，主要贊助商包括電子前哨基金會（EFF）、Mozilla基金會、OVH、思科系統、Facebook、Google Chrome, 網際網路協會、AWS、Nginx和比爾及梅琳達·蓋茨基金會。其他合作夥伴包括證書頒發機構IdenTrust、密西根大學以及Linux基金會。

## 概述

<image>

<image>

Let's Encrypt的使命是通過推動HTTPS的廣泛應用，創建一個更加安全和尊重隱私的全球資訊網。Let's Encrypt的證書有效期為90天，在此期間可以隨時更新。該項目採用自動化流程，旨在克服手動創建、驗證、數位簽章、安裝和續期等繁瑣步驟。該項目的目標是讓全球資訊網的加密連接普及化。通過省去支付費用、伺服器配置、驗證電子郵件管理和證書更新等任務，大大降低了設置和維護TLS加密的複雜性。

在Linux網路伺服器上，只需執行兩個命令即可設置HTTPS加密並獲取和安裝證書。相關軟體包已納入Debian以及Ubuntu的官方軟體存儲庫。目前，Mozilla和Google等主要瀏覽器開發商正在努力淘汰未加密的HTTP，這得益於Let's Encrypt的廣泛使用。該項目有望使加密連接成為整個網際網路的默認狀態。

該服務僅頒發域名驗證型證書（DV），因為這些證書可以完全自動化簽發。組織驗證（OV）以及和擴展驗證證書（EV）都需要對註冊人的人工驗證，因此Let's Encrypt不提供這兩種證書。2018年3月，Let's Encrypt增加了對ACME v2和通配符證書的支持。Let's Encrypt使用的域名驗證型證書（DV），雖然GeoTrust於2002年首次引入時曾引起爭議，但如今已成為廣泛接受的SSL證書頒發方法。

Let's Encrypt希望通過儘可能透明的方式，既保護自身的可信度，又防範攻擊和操縱企圖。為此，定期發布透明度報告，公開記錄所有ACME記錄（如使用證書透明度），並儘可能使用開源和自由軟體。

## 歷史

Let's Encrypt項目於2012年由兩位Mozilla的員工Josh Aas和Eric Rescorla，以及電子前哨基金會的彼得·埃克斯利和密西根大學的J. Alex Halderman共同發起。負責Let's Encrypt的網際網路安全研究小組（ISRG），於2013年5月註冊成立。

Let's Encrypt項目於2014年11月18日正式對外宣布。

2015年1月28日，ACME協議正式提交給IETF進行標準化。2015年4月9日，ISRG和Linux基金會宣布合作。根證書和中級證書在2015年6月初生成。

2015年6月16日，服務的最終啟動時間表公布，預計將於2015年7月27日那一周頒發第一個證書，隨後進行有限的發證期以測試安全性和可擴展性。原計劃服務的全面可用性將於2015年9月14日那一周開始。2015年8月7日，啟動時間表被修訂，以提供更多時間確保系統安全和穩定，計劃於2015年9月7日那一周頒發第一個證書，並在2015年11月16日那一周全面開放服務。

2015年9月14日，Let's Encrypt頒發了其首個證書，域名為。同日，ISRG向Mozilla、微軟、Google以及蘋果公司提交了根證書計劃申請。

2015年10月19日，中級證書由IdenTrust交叉簽署，使得Let's Encrypt頒發的所有證書都被所有主流瀏覽器信任。

2015年11月12日，Let's Encrypt宣布將全面開放服務的時間推遲，首次公開測試版將於2015年12月3日開始。公開測試版從2015年12月3日持續到2016年4月12日，並於2016年4月12日正式上線。

2020年3月3日，Let's Encrypt宣布由於其證書授權軟體中的一個漏洞，必須在3月4日撤銷超過300萬個證書。通過與軟體供應商合作並聯繫網站運營商，Let's Encrypt在截止日期前成功更新了170萬個受影響的證書。由於剩餘證書的安全風險較低且將在接下來的90天內過期，他們決定不撤銷這些證書。這次大規模撤銷事件顯著提高了全球撤銷率。

2020年3月，Let's Encrypt獲得了自由軟體基金會年度社會公益項目獎。

2020年2月27日，Let's Encrypt宣布已頒發了十億個證書。

2022年4月，Let's Encrypt因「對證書生態系統的根本性改進，為所有人提供免費的證書」而獲得Levchin Prize。

截至2022年9月，Let's Encrypt報告稱已頒發了2.34億個有效（未過期）證書。

2025年7月1日，Let's Encrypt開始支持頒發IPv4和IPv6證書。

## 技術

### 信任鏈

#### ISRG Root X1 (RSA)

2015年6月，Let's Encrypt宣布生成首張RSA加密算法根證書「ISRG Root X1」。該根證書用於簽署兩個中間證書，同時這些中間證書也由證書頒發機構IdenTrust交叉簽名。其中一個中間證書用於簽發證書，而另一個作為備用，以防第一個中間證書出現問題。由於IdenTrust證書已經得到主要網路瀏覽器的廣泛信任，因此即使在瀏覽器供應商將網際網路安全研究小組（ISRG）根證書作為信任錨之前，Let's Encrypt的證書通常也能得到驗證和接受。

#### ISRG Root X2 (ECDSA)

Let's Encrypt的開發者早在2015年就計劃生成一個ECDSA根密鑰，但計劃推遲到2016年初，隨後推遲到2019年，最終推遲到2020年。2020年9月3日，Let's Encrypt發布了六個新證書：一個新的ECDSA根證書「ISRG Root X2」，四個中間證書和一個交叉簽名。新的根證書「ISRG Root X2」由Let's Encrypt自己的根證書ISRG Root X1交叉簽名。Let's Encrypt沒有為新的中間證書部署OCSP，而是計劃完全依賴證書吊銷列表 (CRLs)來撤銷受損證書，並通過縮短證書有效期來減少證書受損的風險。

### ACME協議

用於自動註冊證書頒發機構的挑戰應答認證機制稱為「自動憑證更新環境（ACME）」。它可以查詢由證書涵蓋的域控制的Web伺服器或DNS伺服器，並根據得到的響應是否符合預期，以確保註冊者對域的控制（域驗證）。ACME客戶端軟體可以設置一個專用的TLS伺服器，由ACME證書頒發機構伺服器通過伺服器名稱指示（SNI）的方式進行域驗證（DVSNI），或者可以使用鉤子向現有的Web和DNS伺服器發布響應。

驗證過程通過不同的網路路徑進行多次運行，並在多個不同的地理位置上進行檢查DNS條目，從而使DNS欺騙攻擊更難實施。

ACME交互基於通過HTTPS連接交換JSON文檔。在GitHub上有一份規範草案，並已提交給網際網路工程任務組（IETF）作為網際網路標準的草案。

Let's Encrypt實現了自己的ACME協議草案。與此同時，他們還推動標準化。這一努力促成了2019年5月發布的「提案標準（proposed standard）」（RFC8555），該標準引入了重大變革，因此被稱為「ACMEv2」。Let's Encrypt 實現了這一新版本，並開始推動現有客戶端進行升級。通過ACMEv1 API的的間歇性停機，Let's Encrypt 推動使用者進行升級，並在「ACMEv1 生命周期結束計劃」中公布了生命周期結束的日期和各個階段。自2019年11月8日起，ACMEv1不再接受新帳戶註冊。自2020年6月起，ACMEv1停止接受新域名驗證。從2021年1月起，ACMEv1經歷了24小時的停機。最終，ACMEv1 API於2021年6月1日完全關閉。

### 軟體部署

<image>

證書頒發機構由一個名為Boulder的軟體組成，該軟體用Go編寫，實現了ACME協議的伺服器端。該軟體根據Mozilla公共許可證 (MPL)第2版的條款，以自由軟體的形式發布原始碼。它提供了一個可以通過TLS加密通道訪問RESTful的API。

客戶端會安裝一個名為「certbot」（前身為「letsencrypt」）的證書管理程序，該程序根據Apache許可證授權，並由Python編寫。這個程序用於申請證書，進行域名驗證過程，安裝證書，配置HTTP伺服器中的HTTPS加密，並定期更新證書。安裝並同意使用者許可證後，只需執行一條命令即可安裝有效證書。除此之外，還可以啟用其他選項，如OCSP裝訂或HTTP嚴格傳輸安全（HSTS）。自動設置最初只適用於Apache以及Nginx。

Let's Encrypt簽發的證書有效期為90天，理由是這樣做會「限制密鑰洩露和錯誤簽發造成的損失」，並鼓勵自動化。

最初，Let's Encrypt開發了自己官方的ACME客戶端「Certbot」。現在已移交給電子前哨基金會，其名稱從「letsencrypt」更改為「certbot」。社區開發了大量適用於多種環境的ACME客戶端和項目。

## 中國大陸屏蔽

2020年4月2日，防火長城對Let's Encrypt的OCSP伺服器（ocsp.int-x3.letsencrypt.org）所使用的Akamai CDN域名a771.dscq.akamai.net進行了DNS污染，導致部分瀏覽器首次訪問使用Let's Encrypt證書的網站時無法完成OCSP檢查，加載緩慢。

2020年11月20日，Let's Encrypt 推出了 R3 中間證書，使用了新的 OCSP 伺服器地址（r3.o.lencr.org），問題得到解決。

## 更多

- HTTPS Everywhere
- Let's Encrypt Stats -- Let's Encrypt 逐日簽發證書的交互式圖表

## 外部連結

- https://letsencrypt.org/
- GitHub上的 代碼庫
- 塞斯·舒恩 Libre Planet 2015 演講： Let's Encrypt
- pde's talk on Let's Encrypt 於 CCCamp 2015
- Let's Encrypt 頒發的證書列表

## 基本資料

- 成立時間：2016年4月12日
- 創辦人：電子前哨基金會、Mozilla基金會、密西根大學、阿卡邁科技、思科系統
- 總部：美國加利福尼亞州舊金山
- 坐標：37.800322 -122.449951
- 服務：X.509數字證書認證機構
- 上級組織：網際網路安全研究小組（ISRG）
- 預算：360萬
- budget_year：2019
- 員工數：27
- 員工人數：2023