跳至內容

Let's Encrypt

座標37°48′01″N 122°27′00″W / 37.800322°N 122.449951°W / 37.800322; -122.449951
本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Let's Encrypt
成立時間2016年4月12日,​8年前​(2016-04-12
創始人
總部 美國加利福尼亞州舊金山
坐標37°48′01″N 122°27′00″W / 37.800322°N 122.449951°W / 37.800322; -122.449951
服務X.509數字證書認證機構
上級組織
網際網路安全研究小組英語Internet Security Research Group(ISRG)
預算(2019)
360萬美元[1]
員工數
(2023)
27[2]
網站letsencrypt.org 編輯維基數據鏈接

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

概述

[編輯]
使用Let's Encrypt證書的網站示例
Let's Encrypt證書示例

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

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

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

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

歷史

[編輯]

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

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

2015年1月28日,ACME協議正式提交給IETF進行標準化。[28]2015年4月9日,ISRG和Linux基金會宣布合作。[9]根證書和中級證書在2015年6月初生成。[29] 2015年6月16日,服務的最終啟動時間表公布,預計將於2015年7月27日那一周頒發第一個證書,隨後進行有限的發證期以測試安全性和可擴展性。原計劃服務的全面可用性將於2015年9月14日那一周開始。[30]2015年8月7日,啟動時間表被修訂,以提供更多時間確保系統安全和穩定,計劃於2015年9月7日那一周頒發第一個證書,並在2015年11月16日那一周全面開放服務。[31]

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

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

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

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

2020年3月,Let's Encrypt獲得了自由軟件基金會年度社會公益項目獎。[41]

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

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

截至2022年9月,Let's Encrypt報告稱已頒發了2.34億個有效(未過期)證書。[4]

技術

[編輯]

信任鏈

[編輯]

ISRG Root X1 (RSA)

[編輯]

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

ISRG Root X2 (ECDSA)

[編輯]

Let's Encrypt的開發者早在2015年就計劃生成一個ECDSA根密鑰[44],但計劃推遲到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)來撤銷受損證書,並通過縮短證書有效期來減少證書受損的風險。[46]

ACME協議

[編輯]

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

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

ACME交互基於通過HTTPS連接交換JSON文檔。[47]GitHub上有一份規範草案,[48]並已提交給互聯網工程任務組(IETF)作為互聯網標準的草案[49]

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

軟件部署

[編輯]
域名選擇對話框

證書頒發機構由一個名為Boulder的軟件組成,該軟件用Go編寫,實現了ACME協議的服務器端。該軟件根據Mozilla公共許可證 (MPL)第2版的條款,以自由軟件的形式發布源代碼[52]。它提供了一個可以通過TLS加密通道訪問RESTfulAPI

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

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

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

中國大陸屏蔽

[編輯]

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

2020年11月20日,Let's Encrypt 推出了 R3 中間證書,使用了新的 OCSP 服務器地址(r3.o.lencr.org),問題得到解決[58]

更多

[編輯]

延伸閱讀

[編輯]
  • Barnes, R.; Hoffman-Andrews, J.; McCarney, D.; Kasten, J.. Automatic Certificate Management Environment (ACME) RFC 8555. IETF. March 2019. 

參考資料

[編輯]
  1. ^ Aas, Josh. Looking Forward to 2019. Let's Encrypt. December 31, 2019 [January 26, 2019]. (原始內容存檔於2020-11-07) (英語). 
  2. ^ Building A Better Internet - ISRG 2023 Annual Report (PDF). 網際網路安全研究小組英語Internet Security Research Group(ISRG). 2023-12-27 [2024-05-27]. (原始內容存檔 (PDF)於2024-05-27). 
  3. ^ For A Better Internet - ISRG 2020 Annual Report (PDF). 網際網路安全研究小組英語Internet Security Research Group(ISRG). 2020-11-17 [2021-05-11]. (原始內容存檔 (PDF)於2024-01-20). 
  4. ^ 4.0 4.1 Let's Encrypt Stats - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. [2022-10-01]. (原始內容存檔於2018-10-19). 
  5. ^ 5.0 5.1 About Let's Encrypt. Let's Encrypt. [2024-05-29]. (原始內容存檔於2015-06-10). 
  6. ^ Current Sponsors and Funders. Let's Encrypt. [2024-05-29]. (原始內容存檔於2024-05-09). 
  7. ^ 7.0 7.1 7.2 Aas, Josh. Let's Encrypt is Trusted. October 19, 2015 [2024-05-29]. (原始內容存檔於2018-05-31). 
  8. ^ 8.0 8.1 Aas, Josh. Let's Encrypt | Boom Swagger Boom. Boomswaggerboom.wordpress.com. November 18, 2014 [January 6, 2016]. (原始內容存檔於December 8, 2015). 
  9. ^ 9.0 9.1 Kerner, Sean Michael. Let's Encrypt Becomes Linux Foundation Collaborative Project. eWeek. QuinStreet Enterprise. April 9, 2015. [永久失效連結]
  10. ^ Let's Encrypt - FAQ. Let's Encrypt. [2021-05-11]. (原始內容存檔於2024-05-23). 
  11. ^ Why ninety-day lifetimes for certificates? - Let's Encrypt. letsencrypt.org. [2021-09-05]. (原始內容存檔於2024-04-21). 
  12. ^ Kerner, Sean Michael. Let's Encrypt Effort Aims to Improve Internet Security. eWeek.com. Quinstreet Enterprise. November 18, 2014 [February 27, 2015]. (原始內容存檔於2016-12-13). 
  13. ^ Eckersley, Peter. Launching in 2015: A Certificate Authority to Encrypt the Entire Web. 電子前線基金會. November 18, 2014 [February 27, 2015]. (原始內容存檔於2018-11-18). 
  14. ^ How It Works. Let's Encrypt. [July 9, 2016]. (原始內容存檔於2018-05-27). 
  15. ^ Tung, Liam. EFF, Mozilla to launch free one-click website encryption. ZDNet. CBS Interactive. November 19, 2014 [2024-05-29]. (原始內容存檔於2023-10-01). 
  16. ^ 16.0 16.1 16.2 Fabian Scherschel. Let's Encrypt: Mozilla und die EFF mischen den CA-Markt auf. heise.de. November 19, 2014 (德語). 
  17. ^ Marvin, Rob. EFF wants to make HTTPS the default protocol. Software Development Times英語SD Times. BZ Media. November 19, 2014 [May 27, 2019]. (原始內容存檔於June 17, 2016). 
  18. ^ Marier, Francois. ITP: letsencrypt – Let's Encrypt client that can update Apache configurations. Debian Bug report logs. January 1, 2015 [2024-05-29]. (原始內容存檔於2023-04-27). 
  19. ^ python-letsencrypt. Debian Package Tracker. May 27, 2015 [2024-05-29]. (原始內容存檔於2023-04-22). 
  20. ^ Barnes, Richard. Deprecating Non-Secure HTTP. Mozilla Security Blog. Mozilla. April 30, 2015 [2024-05-29]. (原始內容存檔於2024-05-20). 
  21. ^ Marking HTTP As Non-Secure. The Chromium Projects. [2024-05-29]. (原始內容存檔於2024-05-20). 
  22. ^ Moody, Glyn. The Coming War on Encryption, Tor, and VPNs. Computerworld UK. IDG UK. November 25, 2014 [2024-05-29]. (原始內容存檔於2016-04-06). 
  23. ^ Vaughan-Nichols, Steven J. Securing the web once and for all: The Let's Encrypt Project. ZDNet. CBS Interactive. April 9, 2015 [2024-05-29]. (原始內容存檔於2022-03-22). 
  24. ^ Aas, Josh. ACME v2 and Wildcard Certificate Support is Live. Let's Encrypt. March 13, 2018 [May 24, 2018]. (原始內容存檔於2018-06-01). 
  25. ^ There's certs and certs – VeriSign badmouths rivals. www.theregister.com. [August 20, 2020]. (原始內容存檔於2023-03-24). 
  26. ^ Zorz, Zeljka. Let's Encrypt CA releases transparency report before its first certificate. Help Net Security. July 6, 2015 [2024-05-29]. (原始內容存檔於2024-02-23). 
  27. ^ Joseph Tsidulko. Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode. crn.com. November 18, 2014 [August 26, 2015]. (原始內容存檔於2018-06-12) (英語). 
  28. ^ History for draft-barnes-acme
  29. ^ 29.0 29.1 Reiko Kaps. Let's Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle. heise.de. June 5, 2015 (德語). 
  30. ^ Josh Aas. Let's Encrypt Launch Schedule. letsencrypt.org. Let's Encrypt. June 16, 2015 [June 19, 2015]. (原始內容存檔於2018-05-26). 
  31. ^ Updated Let's Encrypt Launch Schedule. August 7, 2015 [2015-08-09]. (原始內容存檔於2015-09-27). 
  32. ^ Michael Mimoso. First Let's Encrypt Free Certificate Goes Live. Threatpost.com, Kaspersky Labs. [September 16, 2015]. (原始內容存檔於2018-06-12). 
  33. ^ Public Beta: December 3, 2015. November 12, 2015 [2024-05-29]. (原始內容存檔於2018-04-07). 
  34. ^ Entering Public Beta - Let's Encrypt - Free SSL/TLS Certificates. Let's Encrypt. December 3, 2015 [January 6, 2016]. (原始內容存檔於2015-12-08). 
  35. ^ Let's Encrypt Leaves Beta. LinuxFoundation.org. [17 April 2016]. (原始內容存檔於April 15, 2016). 
  36. ^ Josh Aas; ISRG Executive Director. Leaving Beta, New Sponsors. EFF. [April 12, 2016]. (原始內容存檔於2018-05-17). 
  37. ^ Catalin Cimpanu. Let's Encrypt Launched Today, Currently Protects 3.8 Million Domains. Softpedia News. [April 12, 2016]. (原始內容存檔於2017-08-29). 
  38. ^ Revoking certain certificates on March 4. March 3, 2020 [4 March 2020]. (原始內容存檔於2023-07-28). 
  39. ^ Barrett, Brian. The Internet Avoided a Minor Disaster Last Week. Wired (Conde Nast). 9 March 2020 [12 May 2020]. (原始內容存檔於2023-08-03). 
  40. ^ Korzhitskii, Nikita; Carlsson, Niklas. Revocation Statuses on the Internet. In proceedings of 2021 Passive and Active Measurement Conference (PAM 2021). 2021. arXiv:2102.04288可免費查閱. 
  41. ^ Let's Encrypt, Jim Meyering, and Clarissa Lima Borges receive FSF's 2019 Free Software Awards頁面存檔備份,存於網際網路檔案館) Free Software Foundation, 2020
  42. ^ Let's Encrypt Has Issued a Billion Certificates - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. [2021-04-03]. (原始內容存檔於2023-06-20). 
  43. ^ The Levchin Prize for Real-World Cryptography. Real World Crypto Symposium. International Association for Cryptologic Research. [9 April 2024]. (原始內容存檔於2024-03-25). 
  44. ^ 44.0 44.1 44.2 44.3 Aas, Josh. Let's Encrypt Root and Intermediate Certificates. Let's Encrypt. June 4, 2015 [2024-05-29]. (原始內容存檔於2015-12-03). 
  45. ^ Reiko Kaps. SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen. heise.de. June 17, 2015 (德語). 
  46. ^ Gable, Aaron. Let's Encrypt's New Root and Intermediate Certificates. Let's Encrypt. September 17, 2020 [September 22, 2020]. (原始內容存檔於2024-05-29). 
  47. ^ 47.0 47.1 Brook, Chris. EFF, Others Plan to Make Encrypting the Web Easier in 2015. Threatpost: The Kaspersky Lab Security News Service. November 18, 2014 [2024-05-29]. (原始內容存檔於2024-04-05). 
  48. ^ Draft ACME specification. GitHub. May 6, 2020 [2024-05-29]. (原始內容存檔於2022-05-28). 
  49. ^ Barnes, Richard; Eckersley, Peter; Schoen, Seth; Halderman, Alex; Kasten, James. Automatic Certificate Management Environment (ACME) draft-barnes-acme-01. Network Working Group. January 28, 2015 [2015-08-09]. (原始內容存檔於2020-06-28). 
  50. ^ End of Life Plan for ACMEv1. Let's Encrypt Community Support. March 11, 2019 [August 20, 2020]. (原始內容存檔於2024-05-21). 
  51. ^ End of Life Plan for ACMEv1 - API Announcements. Let's Encrypt Community Support. 2021-05-05 [2021-05-12]. (原始內容存檔於2022-12-27). 
  52. ^ letsencrypt. boulder/LICENSE.txt at master · letsencrypt/boulder · GitHub. Github.com. [January 6, 2016]. (原始內容存檔於2019-03-19). 
  53. ^ letsencrypt. letsencrypt/LICENSE.txt at master · letsencrypt/letsencrypt · GitHub. Github.com. November 23, 2015 [January 6, 2016]. 
  54. ^ Sanders, James. Let's Encrypt initiative to provide free encryption certificates. TechRepublic. CBS Interactive. November 25, 2014 [2024-05-29]. (原始內容存檔於2023-02-28). 
  55. ^ Aas, Josh. Why ninety-day lifetimes for certificates?. Let's Encrypt. November 9, 2015 [2016-06-26]. (原始內容存檔於2024-04-21). 
  56. ^ ACME Client Implementations - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. [August 20, 2020]. (原始內容存檔於2019-03-16). 
  57. ^ Ocsp.int-x3.letsencrypt.org is not working in China. jsha. 2020-05-20 [2021-04-25]. (原始內容存檔於2021-04-28) (英語). 
  58. ^ Beginning Issuance from R3. aarongable. 2020-11-20 [2021-04-25]. (原始內容存檔於2021-04-28) (英語). 

外部連結

[編輯]