Let's Encrypt

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

**概述**
使用Let's Encrypt證書的網站示例
Let's Encrypt證書示例
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億個有效（未過期）證書。

**技術**

**信任鏈**

**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日完全關閉。

**軟件部署**
域名選擇對話框
證書頒發機構由一個名為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 date=20181019221028  -- Let's Encrypt 逐日簽發證書的交互式圖表

**延伸閱讀**
 cite IETF |title=Automatic Certificate Management Environment (ACME) RFC 8555 |rfc8555 |last1=Barnes |first1=R. |last2=Hoffman-Andrews|first2=J. |last3=McCarney |first3=D. |last4=Kasten |first4=J. |date=March 2019 |publisher=IETF

**參考資料**

**外部鏈接**
 GitHub上的 代碼庫 date=20180606162303 -  塞斯·舒恩 Libre Planet 2015 演講： Let's Encrypt date=20200812131624 -  pde's talk on Let's Encrypt date=20150919125655  於 CCCamp 2015-  Let's Encrypt 頒發的證書列表 date=20180908175100