nginx使用certbot自动更新https免费证书

个人博客的 HTTPS 证书一直使用的是免费的 Let's Encrypt 。证书获取和自动 renew 方案是参考 Jerry Qu 提供的 acme-tiny. 这个方案脚本短小精悍,是自己喜欢的风格。

但前几天发现网站的证书过期了,尝试手动运行更新脚本,发现已经无法运行。想来这个方案已经用了6年多了,索性这次迁移到使用官方的 certbot 方案。简单记录了一下迁移步骤:

https://certbot.eff.org/lets-encrypt/ubuntubionic-other

1. 安装 snapd

需要说明的是 snapd 在 Ubuntu 16.04 及以后版本都是预装的,可以跳过这个步骤。而我的服务器还停留在 14.04, 需要安装手动安装一遍:

apt-get install snapd

If you’re running Ubuntu 16.04 LTS (Xenial Xerus) or later, including Ubuntu 18.04 LTS (Bionic Beaver), Ubuntu 18.10 (Cosmic Cuttlefish) and Ubuntu 19.10 (Eoan Ermine), you don’t need to do anything. Snap is already installed and ready to go.

2. 安装 Certbot

sudo snap install –classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

3. 申请证书

因为服务器上部署了很多服务,有开源的nginx,也有自己编写的web服务,因此我仅使用 certbot 来获取和更新证书即可。证书的使用通过 post hooks 来集成。而我又不想停止我线上的服务,因此,这里使用 certonly 模式来获取证书

sudo certbot certonly –webroot -w /var/www/challenges -d www.liudanking.com -d liudanking.com

需要注意一点,需要映射一下 http 服务 /.well-known/acme-challenge path 与本地 directory 的关系。以nginx为例,可以这样配置:

To use the webroot plugin, your server must be configured to serve files from hidden directories. If /.well-known is treated specially by your webserver configuration, you might need to modify the configuration to ensure that files inside /.well-known/acme-challenge are served by the webserver.

一般,获取的证书会保存到 /etc/letsencrypt/live/DOMAIN_NAME 文件夹下,同时certbot后台也会运行一个定时调度任务,自动更新证书,防止证书过期。

4. 配置后处理钩子脚本

/etc/letsencrypt/renewal-hooks/post 添加后处理脚本renew_post.sh。这里我只需要见到的reload nginx即可:

nginx -s reload

这样,每次更新完证书,最新的证书就可以在nginx中应用生效了。

小结

certbot 整体流程还是比较简单的。但是绑定 snap 的方式不是自己喜欢的风格。考虑到这是 Let's Encrypt 官方推荐的方式,希望能够长期稳定吧。

之前在 Jerry Qu 的网站学习和参考了挺多 HTTPS 的知识和实践经验,挺感谢站长以及他的网站。今天回头看的时候,发现他已经有挺长时间没更新了,心有所触。不知道个人blog时代是不是已经远去不可及,也不知道自己还能坚持,权当是闲暇时候的反观世界时的喃喃自语吧。

疫情下的入秋

别纠结题目,暂时没想好。

8月发生了很多事,成都这捉摸不定的天气突然退夏入秋了,东京奥运顺利闭幕了,女儿也顺利结束了3年的幼儿园学习生涯,今早送进小学校门了,项目上一如既往的忙碌。惟独没有什么事情是属于自己的。

我对2016年的奥运会几乎是选择性的忽略,倒是没有什么特殊的原因,只是觉得缺乏了看点。但今年关注奥运,仅仅是因为中国的那位百米飞人。

作为一个业余的体育爱好者,经常用肌肉骨骼理论跟身边人分析为什么黑人在田径项目上行,在游泳项目上不行。当然,末了,还会附带一个自嘲式的为什么黄种人田径上不行。

这是一种很典型的键盘侠。直到被苏炳添半决赛的成绩震撼到。准确的讲,是从成绩这个点,被这个人震撼到。2008年,北上求学的第二年,刘翔红得发紫,苏炳添刚刚出道。刘翔在十亿双眼睛下在几秒钟内跌入了谷底,苏炳添不动声色的拿下两块国赛的金牌。此后的十几年,前者在伤病困扰下,煎熬反复,最终宣布退役,淡出大众视野,却被迫批附着大众偏执的情绪;后者则在比赛、学术、教育、行业上全面开花结果,虽然这种结果对对部分人来说都是马后炮式的附庸捧喝。无意要比较两位目前为止我们拥有的最优秀短跑田径运动员高下。因为,作为一个跑者,某种程度上看,前者是不幸的;而苏能一直跑到今天,即使抛开成绩和影响,这也是一种幸运。

苏刘二人都是80后,但是,以85为界,显然两者又有各自的时代烙印。我们常说长期主义和意义追寻,当如是。

三年前,走路上不稳妥的女儿送进了幼儿园校门,今天女儿满脸好奇和期待的走进了小学校门。突然有种喜悦弱失,但没有担忧。女儿幼儿园的成长很棒,我期待的博雅基础教育都很好的在她身上看到了种子。我和妻性格上的缺陷也没有继承到她身上。无论怎样,老父亲看女儿长大,总逃不开一边喜悦,一边不愿的矛盾感。

在无声中,自己也迎来了三年。相比女儿,老父亲毫无悬念是不及格的。这两年,我发现对自己真实是相对容易的,但是对自己足够耐心坚持是显著缺位的。在鼓励女儿的时候,我说得最多的就是问她是否勇敢。一来我认为这是非常稀缺的特质,二来也是自己内心的投影。我当然不会同意家长的遗憾在子女教育上去做找补,但是从这个角度看,第一个点我很坚信女儿自己能吸收成长,第二个点只有自己去解。

秋意凉,多思量。

A letter to daughter

春华秋实,盛夏时节迎来了你的第一个毕业礼。毕业晚会上,老爸看到了精彩你的节目,还有舞台上你的怡然自得,当然,还有你领取毕业证书时的不舍和眼泪。这些,爸妈都用快门为你做了忠实的记录,等你长得更大的时候,可以看看这些自己走过的脚印。

你的三年幼儿园学习生涯终于结束了,你也从一个步履蹒跚的宝宝成长为了一个脚步如飞,能跑绝对不好好走的活力宝贝。你学会了基本的识字和认读,学会了许多说唱就唱说跳就跳的歌曲和舞蹈,你也学着自己的事情自己干。以终为始,你的第一个毕业不仅仅是校园,更是人生的一个新起点。在这全新的起点上,你的老父亲有些话想跟你聊聊。

你生活在物质极大丰富的年代,这是一种幸运。但是你要知道这个世界很大,世界也远不只是看到的样子和大小。中国有句古话,一粥一饭,当思来自不易;半丝半缕,恒念物力维艰。勤俭节约是一种美德,永远都不会过时。这个年代,条件允许的情况下,你当然不用苛刻自己,但是要把物尽其用放在手上,弱水三千只取一瓢挂在心上。

你可能很难想象爸妈成长的年代是没有“围墙”的。但你要知道,通信发达使得人人时刻在线也就是近几年才发生的事。在通信没那么发达的时候,人跟人的相处讲究的就是面对面。时代的发展是必然的,但是人类内心沟通和交流的述求并没有什么不同。但是一定不能被通信关进了一个与现实世界给力的空间。我至今记得你领取证书时候难舍难分的眼泪,人生自古多别离,在此之前,能做的事情有很多,最重要的是珍惜眼前人。

你现在可能不明白为什么我们有时候会对你的某些行为感到“愤懑”。你的成长往往意味着我们的衰老,我和妈妈都是非常fashion紧跟时代的父母,我们当然不会用某种守旧的思想来约束你。但我们希望你能够更加敏感甚至敏锐的体察他人的感受,与之共情。我们不要求你同情心泛滥,但是我们希望你富有同理心。送你一首以后你会遇上,现在的老父亲很喜欢的一首现代诗:

你站在桥上看风景,
看风景人在楼上看你。
明月装饰了你的窗子,
你装饰了别人的梦。
卞之琳 断章

上小学是你下一站求学全新的开始。你会遇到很多新的困难,也会所获很多新的成长。你要知道,这个世界谁都理所当然欠谁的。一定不要抱怨,那没有任何作用。感恩在你摔倒时帮助过你的人,不仅仅是扶你起来的人,还有哪怕向你投来关注目光的人。同时也要学会着帮助他人,很纯粹的帮助,赠人玫瑰手有余香。

这个世界很多大,不仅仅是天很大,地很大,还有历史长河中有趣的人,有意思的事。人没有高下之分,但是内心的追求是有的。你还记得你们毕业礼上的“星辰大海”主题吗?请保持自己对这个世界的好奇,好奇的求知,好奇的旅行,好奇的与有趣的灵魂邂逅。

幼儿园的生活让你学会了如何和集体相处,老父亲要提醒你的是,与之相比,更重要的是学会与自己相处,这可是一辈子事情。与自己相处不仅仅是爱自己,同时也要懂得如何跟自己对话,如何跟自己和解。希望您能培养和珍惜一两个像样的兴趣,那是跟自己相处的一个有效的桥梁。

人生百年难永恒,但确是不短的时间。坚持长期主义,不因一时取舍患得患失。老父亲希望你珍惜时间,不负时光,向星辰大海进发吧!