Let's Encrypt

Let's Encrypt是由（ISRG）运营的非营利性证书颁发机构，免费提供傳輸層安全性協定（TLS）加密的X.509证书。它是世界上最大的证书颁发机构，超过3亿个網站使用其服务，其目标是确保所有网站的安全并使用HTTPS。提供该服务的（ISRG）是一个公益组织，主要赞助商包括电子前哨基金会（EFF）、Mozilla基金會、OVH、思科系统、Facebook、Google Chrome, 互联网协会、AWS、Nginx和比尔及梅琳达·盖茨基金会。其他合作伙伴包括证书颁发机构、密西根大学以及Linux基金會。

 概述 
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），虽然于2002年首次引入时曾引起争议，但如今已成为广泛接受的SSL证书颁发方法。 

Let's Encrypt希望通过尽可能透明的方式，既保护自身的可信度，又防范攻击和操纵企图。为此，定期发布透明度报告，，公开记录所有ACME记录（如使用证书透明度），并尽可能使用开源和自由软件。

 歷史 
Let's Encrypt项目于2012年由两位Mozilla的员工Josh Aas和Eric Rescorla，以及电子前哨基金会的彼得·埃克斯利和密西根大学的共同发起。负责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日，中级证书由交叉签署，使得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获得了自由软件基金会年度社会公益项目奖。Let's Encrypt, Jim Meyering, and Clarissa Lima Borges receive FSF's 2019 Free Software Awards  Free Software Foundation, 2020

2020年2月27日，Let's Encrypt宣布已颁发了十亿个证书。

2022年4月，Let's Encrypt因“对证书生态系统的根本性改进，为所有人提供免费的证书”而获得。

截至2022年9月，Let's Encrypt报告称已颁发了2.34亿个有效（未过期）证书。

 技术 

 信任链 

 ISRG Root X1 (RSA) 
2015年6月，Let's Encrypt宣布生成首张RSA加密算法根证书「ISRG Root X1」。该根证书用于签署两个中间证书，同时这些中间证书也由证书颁发机构交叉签名。其中一个中间证书用于签发证书，而另一个作为备用，以防第一个中间证书出现问题。由于证书已经得到主要网络浏览器的广泛信任，因此即使在浏览器供应商将（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  -- Let's Encrypt 逐日签发证书的交互式图表

 延伸阅读 


 参考资料 

 外部链接 

 GitHub上的代码库 
 塞斯·舒恩 Libre Planet 2015 演讲： Let's Encrypt 
 pde's talk on Let's Encrypt  于 CCCamp 2015
 Let's Encrypt 颁发的证书列表 

Category:2014年建立的网站
Category:证书颁发机构
Category:傳輸層安全協議
Category:Linux基金会项目
Category:保密通信
Category:Mozilla