Certobot管理Let's Encrypt证书的几个经验

很多人经常在使用 Certbot 申请 Let's Encrypt 证书的时候,犯一些小错误,或者不知道如何正确操作,这篇文章简单总结下我的一些经验,后续如果还有一些新的收获,还会随时介绍。
废话少说,下面列举下我的一些小经验。

1:设置邮箱接收证书过期的通知

在使用 certbot 的时候,很多人没有意识到 account 的创建,每个 account 对应一个 email 地址,可以通过下列命令修改 account 对应的 email 地址。

$ certbot-auto register --update-registration --email admin@example.com

那配置 email 的用处是什么呢?一张 Let's Encrypt 证书有效期是 90 天,有效期太短,很多人忘记续期,Let's Encrypt 会在证书快过期的时候,给 email 地址发送证书快过期的通知。

2:使用 certbot 还是 certbot-auto?

certbot 和 certbot-auto 本质上没有区别,但很多人疑惑两者的区别,certbot-auto 对 certbot 做了包装,可以设置系统环境或自动升级。

我个人更喜欢 certbot-auto 的安装方式:

$ wget https://dl.eff.org/certbot-auto
$ chmod a+x ./certbot-auto

而如果使用包安装方式,安装的是 certbot 工具。

$ apt-get install certbot 

3:不要 rm 删除证书

由于 Let's Encrypt 证书可以通过工具自由申请,很多人会无节制的操作,从而出现了很多无用证书,很多操作者不知道如何处理这些旧证书,就轻易的 rm 删除。

这是非常不好的一个习惯,因为一些证书如果没有到期,被攻击者利用了就比较麻烦,正确处理无用证书的方式如下。

先查看目前机器上申请过的证书:

$ certbot-auto certificates

输出如下:

Found the following certs:
  Certificate Name: simplehttps.com
    Domains: *.simplehttps.com
    Expiry Date: 2018-10-15 05:21:15+00:00 (VALID: 52 days)
    Certificate Path: /etc/letsencrypt/live/simplehttps.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/simplehttps.com/privkey.pem
  Certificate Name: yudadan.com
    Domains: *.yudadan.com *.simplehttps.com
    Expiry Date: 2018-10-15 04:52:47+00:00 (VALID: 52 days)
    Certificate Path: /etc/letsencrypt/live/yudadan.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/yudadan.com/privkey.pem

然后吊销证书,相当于通知 Let's Encrypt,该证书已经无效了。

$ certbot-auto revoke --cert-path /etc/letsencrypt/live/yudadan.com/cert.pem --reason superseded 

-- reason 表示是吊销证书的原因,命令运行成功后,/etc/letsencrypt/renewal、/etc/letsencrypt/archive、/etc/letsencrypt/live 下对应的文件都会被删除。

4:你喜欢采用那种域名校验方式

Let's Encrypt 提供了很多插件,能够满足各种场景下的证书管理,对于个人网站来说,可能只有一台 Web 服务器,在这台机器上申请、续期证书,然后 Web 服务器直接引用证书即可,非常的方便。

对于大型企业来说,服务器非常多,Web 服务器、7层负载均衡设备都需要部署证书,一般会专门找一台机器(中控机)运行 Certbot,一旦更新证书,就通过各种方式(最简单的可能就是 rsync)将证书和密钥对分发到目标服务器上。

在申请证书的时候,Let's Encrypt 会校验申请者的身份,也就是要确认域名的所有权,主要有三种方式,分别是 http-01、tls-sni-01、dns-01,如果由中控机统一管理证书,建议采用 dns-01 的验证方式。

在中控机上运行 Certbot,一般情况下无法绑定域名到这台机器上,而 http-01、tls-sni-01 需要启动 web 服务,所以理论上来看,这两种校验方式无法使用。唯一的校验方式就是 dns-01,其实这也是最简单、最直接的方式,如果不想手动配置域名 DNS 解析记录,可以采用一些插件或一些 hook 来自动处理。

5:使用 staging 服务器

申请 Let's Encrypt 证书都是工具化的,为了防止滥用,Let's Encrypt 对申请证书做了一定的数量限制。

如果操作不熟练,很容易陷入限制,为避免产生这种情况,可以采取两种方式。

(1)--test-cert

在测试 Certbot 的时候,输入该参数,表示向 staging 服务器发送请求,staging 服务器的限制阀值比较大,不会影响证书申请。

等熟练掌握 Certbot 操作后,再向真实服务器发送请求。

(2)--dry-run

当使用 renew 或 certonly 操作 Certbot 的时候,加入该参数,不会真正保存证书到本地,也就是说不会陷入限制,这对测试 Certbot 操作非常有用。

6:不要轻易修改 renewal 文件。

在 Certbot 中,所有的证书管理操作都保存在 renewal 文件中,该文件相当于索引,用户管理证书,打开 /etc/letsencrypt/renewal/simplehttps.com.conf 文件,内容如下图:

图1

archive_dir 等配置指向一个软连接,指向了实际的证书。renewalparams 参数存储了很多申请证书时用到的配置,比如 server 表示 Let's Encrypt 的服务器地址(v2版本),采用了 manual(手动)插件,使用 dns-01 域名验证方式,manual_auth_hook 表示采用的 hook 文件。

这个文件对 Certbot 至关重要,比如 renew 证书的时候会用到,一般情况下不要手动修改,如果 archive 目录下证书文件移动了,可以修改相关连接参数,然后运行下列命令,重置 renewal 文件。

$ certbot-auto update_symlinks

7:authenticators 插件和 installers 插件别混淆。

在 Certbot 中,存在两种类型的插件,可在运行具体命令参数的时候,很多人会混淆。

下面两条命令作用是相同的:

$ certbot-auto
$ certbot-auto run install 

其中 run 表示申请证书,install 表示采用 installers 插件。

下面两条命令是相同的:

$ certbot-auto  certonly  
$ certbot-auto run certonly

表示采用 authenticators 插件。

在我刚开始学习的时候,总是搞不清楚相关命令行参数,现在明白了吗?

我最近写了一本书《深入浅出HTTPS:从原理到实战》,欢迎去各大电商购买,也欢迎关注我的公众号(yudadanwx,虞大胆的叽叽喳喳),了解我最新的博文。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容