前些天因为网站的letsencrypt证书到期了,导致网站https无法访问。打算诡异的事情是,我好想用的不是letsencrypt,我一直用的不用letsencrypt,后来了解到letsencrypt是有90天有效期的,选择删除该证书重新安装了新的证书,下面整理的是letsencrypt删除不需要的证书方法。

Let’s Encrypt是一个于2015年第三季度出现的数字证书认证机构,该机构不仅向个人用户提供免费的SSL/TLS证书,还开发了一套自动化的证书申请工具,大幅简化了复杂的证书申请流程。

该机构的出现掀起了一波个人网站SSL/TLS化的潮流,目前已经是V2EX上的钦定证书认证机构。考虑到WoSign和StartCom的那些破事,Let’s Encrypt也应该是目前个人站点SSL/TLS化的首选证书来源。

Let’s Encrypt的网站上提供了如何为指定的域名申请证书的教程,但是却没说怎么把不想要域名从证书中删除。有的时候因为使用的域名发生变化,会导致证书更新(renew)失败,所以我们确实需要知道如何从证书中删除不需要的域名。

从证书中删除域名

其实,Let’s Encrypt目前并不提供从证书中删除域名的功能……但是我们可以把证书删除后重新申请。

对于一些不想再继续更新的证书,也可以采用本文的方式将它们删除,以避免/etc/letsencrypt/目录中留下太多没用的文件。

删除证书的时候,需要删除archive中的文件和live中的符号链接,同时还需要删除证书更新的配置文件:

rm -rf /etc/letsencrypt/live/www.example.com/
rm -rf /etc/letsencrypt/archive/www.example.com/
rm /etc/letsencrypt/renewal/www.example.com.conf

删除后,重新申请证书,这里给出的是webroot方式,当然你也可以用standalone方式:

letsencrypt certonly --webroot -w /var/www/example -d foo.example.com -d bar.example.com

获得证书后,测试一下是否可以正常更新:

letsencrypt renew --dry-run --agree-tos

如果更新一切正常,就证明证书当中已经不包括我们不需要的域名了。

是否需要吊销旧的证书?

我并不知道吊销证书会不会产生什么不好的后果,但是证书吊销一般都发生在一些严重的安全事故之后。由于我们并没有发生什么严重的安全事故,只是删个域名而已,因此我个人认为是不需要吊销旧证书的。而且Let’s Encrypt签发的证书只有90天的有效期,等着它自己过期就可以了。