我是如何优雅的申请Let’s Encrypt证书及续订
序
证书快要到期了,之前做的自动化失败。因为通配符证书申请、续期的时候只能通过 DNS 验证,而 DNS 添加记录只能手动,整个 cerbot 操作无法做到自动化,所以 renew 就失败了。但是我并不着急,这类教程总是一抓一大把。在到期的最后一天,我在网上搜了好多篇,找到合适自己的真不容易,遂记之。
过程
探索的路径如下图
结果
1.申请证书要有良好的域名解析,所以我推荐dns.he.net
2.最简单莫过于acm.sh,无污染服务器环境莫过于docker acm.sh
申请
1.直接运行的
下载
curl https://get.acme.sh | sh
运行
export HE_Username="用户名"
export HE_Password="密码"
acme.sh --issue --dns dns_he -d datayang.com -d *.datyang.com
2.docker 运行的
下载
docker pull neilpang/acme.sh
mkdir -p /usr/local/acme.sh
申请
docker run --rm \-v /usr/local/acme.sh:/acme.sh \-e HE_Username="用户名" \-e HE_Password="密码" \neilpang/acme.sh --issue --dns dns_he -d datayang.com -d *.datayang.com
续订
写个cron定时直接docker脚本,脚步内容大致如下,没有测试
vim renew_acme.sh
#! /bin/sh service nginx stopdocker run --rm \
-v /usr/local/acme.sh:/acme.sh \
neilpang/acme.sh --renew -d datayang.com -d *.datayang.comservice nginx srart
chmod +x renew_acme.sh
在 etc目录建一个新文件acme-auto-renew-cron, 这个是一个 cron 计划,这段内容的意思就是 每隔 两个月的 凌晨 2:15 执行 更新操作。
15 2 * */2 * ./renew_acme.sh
最后我们用 crontab 来启动这个定时任务
crontab /etc/acme-auto-renew-cron
查看开启的任务crontab -l
参考:
https://www.jianshu.com/p/d318321b93a1
https://www.aaflalo.me/2017/02/lets-encrypt-with-dehydrated-dns-01/
https://github.com/AnalogJ/lexicon
https://github.com/adferrand/docker-letsencrypt-dns
https://github.com/Neilpang/acme.sh/wiki/Run-acme.sh-in-docker
https://github.com/lj2007331/lnmp
https://github.com/certbot/certbot
https://letsencrypt.osfipin.com/
最后更新于 2018-11-17 13:00:30 并被添加「 Let's Encrypt, Let's Encrypt证书, https」标签,已有 3016 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处