今天体验了一下 Let's Encrypt 的签发过程,不需要任何信息,虽然填写了邮件地址,但并没有发邮件来认证,只需要在该域名的特定路径下放置特定内容的文件即可。
SSL 证书的一个用途就是,在攻击者控制了域名解析的情况下,防止攻击者冒充该网站。但如果像 Let's Encrypt 签发流程这样简单的话,攻击者如果控制了域名解析 / Web 服务器的话,就可以申请到同样的证书。
于是效果就是:
- 如果攻击者控制了域名解析,那么他可以申请到该域名的证书,修改解析冒充该网站。
- 如果攻击者控制了 Web 服务器,那么他可以申请一个有效期 90 天的证书,并在一个相对小的范围内劫持域名解析,冒充该网站。
而传统的 CA 是通过略微复杂的流程(需要付费且不容易自动化),用更多方法去认证申请者对域名的所有权,并登记申请者的个人信息来一定程度(但并不彻底)规避这两个问题的。
因为 Let's Encrypt 的证书已经被大家的设备信任了,所以无论你是否使用 Let's Encrypt, 你的网站和你的通讯安全都会受到威胁。
于是是不是大家都应该去申请 Let's Encrypt 的证书,然后按时续期,以防止攻击者冒领证书呢(申请证书后再次申请需要 60 天)。
