让我们加密,好的,坏的和丑陋的

2020-09-11 21:18:59

LetsEncrypt是一个相当巧妙的概念:为Web服务器提供免费的安全证书,以便在Web上增加对HTTPS的采用。基本思想是证书应该是免费的,安装它们的障碍应该尽可能低,证书更新应该是自动的。它保护着这个网站和数以百万计的上百人。这样做的好处是,不再容易地窥探动态数据,并且将数据注入页面变得更加困难,甚至不可能。从安全角度来看,这是向前迈出的一大步。

该项目于2016年4月启动,取得了巨大成功,同时已颁发了10多亿份证书。与所有这类项目一样,在最初启动后,软件会定期更新,以便跟踪需求的变化,但本质上问题很简单:通过让域响应质询来验证证书请求是否有效,以及是否要从letscrypt.org服务器获取证书并进行安装。到目前一切尚好。

对许多机构来说,这个命题的“免费”部分是次要部分。主要部分-例如对我来说-是letscrypt自动化了一些事情,否则我必须每年为活动的域做一次:创建并安装一个新的证书。有点麻烦,每个域名大约20分钟。

这就是LetsEncrypt的情况看起来并不那么好的地方。因为这20分钟或多或少是一个固定的时间,我知道我是为了一个小小的会议而放弃了一点点控制权,这是一种合理的权衡。

第一次攻击我是在不久前,我的一台服务器突然拒绝更新它的证书。在某个地方,有人决定LetsEncrypt应该自动更新,即使在运行它的系统上完全没有任何更改。这个自动更新完全地、完全地破坏了那台计算机上的运行时环境,最终导致了它的重新映像,这是一件本不应该发生的事情。前几天我写道为什么我非常讨厌升级软件,这就像玩俄罗斯轮盘赌,5发子弹,你希望是6发左轮手枪中的一片空白。

不幸的是,LetsEncrypt也不例外:升级过程已经够糟糕的了,它往往会安装一大堆麻烦,证书续订时整个python虚拟环境都会被拖进来,这很奇怪,因为毕竟*情况没有改变,如果上一次起作用了,这一次应该还能起作用*。

我在做一个新项目。该新项目需要新域上的Web服务器。我的域名服务器正在运行“mailinabox”,并且在过去的两年里一直在愉快地嗡嗡作响。一项针对letscrypt挑战的新协议发布,并在网络的某个默默无闻的角落宣布,颁发新证书的旧方法逐渐被摒弃。除非您每天都使用LetsEncrypt进行交互,否则您不会知道这一点,但是就像大多数这些东西一样,它们的全部价值在于不必一直与它们交互。他们应该闭嘴,坐在角落里做他们该死的工作。

不是这样的,让我们加密吧。自从我开始使用它以来,LetsEncrypt第二次要求成为中心舞台。在为我的全新域名申请证书时,我收到了一些可笑的晦涩难懂的错误消息,这让我陷入了无穷无尽的网站和人的兔子洞-但没有成功-试图解决同样的问题。

最终,我设法拿到了证书,但我已经知道,我至少需要做一天(如果不是更多的话)核心系统管理工作,才能适当地纠正这种情况。运行这一切的机器将需要更新版本的操作系统。这意味着我将不得不将一大堆数据迁移到另一台计算机,以便能够在不停机的情况下执行此操作。然后,我将不得不临时重新路由DNS,以确保与此项目没有直接关系的其他服务继续运行。

这样做的结果是,现在LetsEncrypt,从一个节省时间和方便的地方,第二次变成了一个非常大的净负值。对于一个试图让事情变得更容易的项目来说,这是不可接受的,而且采用的主要驱动因素是便利性,而不是财务考虑。

我明白LetsEncrypt需要与时俱进。但是LetsEncrypt的人们也应该明白,从更大的计划来看,证书并不是生活中最重要的事情,从长远来看,给您的最终用户带来这种程度的悲痛并不符合项目的最佳利益。