https://github.com/xdtianyu/scripts/tree/master/le-dns
脚本基于 letsencrypt.sh,通过调用 cloudxns API 更新 TXT 记录用于认证,实现快速获取 lets-encrypt 证书。无需 root 权限,无需指定网站目录及 DNS 解析
下载
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-cloudxns.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/cloudxns.conf
chmod +x le-cloudxns.sh
配置
cloudxns.conf
文件内容
API_KEY="YOUR_API_KEY"
SECRET_KEY="YOUR_SECRET_KEY"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
修改其中的 API_KEY
及 SECRET_KEY
为您的 cloudxns api key ,修改 DOMAIN
为你的根域名,
修改 CERT_DOMAINS
为您要签的域名列表
运行
./le-cloudxns.sh cloudxns.conf
最后生成的文件在当前目录的 certs 目录下
cron 定时任务
每两个月自动更新一次证书,可以在 le-cloudxns.sh
脚本最后加入 service nginx reload 等重新加载服务。
* * * */2 * /etc/nginx/le-cloudxns.sh /etc/nginx/le-cloudxns.conf >> /var/log/le-cloudxns.log 2>&1
正文的 cron 命令错了,会在每分钟都执行,修复如下
cron 定时任务
每两个月(第一天 00:00)自动更新一次证书,可以在 le-cloudxns.sh 脚本最后加入 service nginx reload 等重新加载服务。
0 0 1 */2 * /etc/nginx/le-cloudxns.sh /etc/nginx/le-cloudxns.conf >> /var/log/le-cloudxns.log 2>&1
1
xonze 2016-02-02 14:19:48 +08:00
牛 x ,这个方法好
|
2
mdemo 2016-02-02 14:22:59 +08:00
赞
|
3
CloudXNS 2016-02-02 14:29:59 +08:00 1
这个不错,不过应该首发到 X 社区才是(●ˇ∀ˇ●)
|
4
wm5d8b 2016-02-02 17:13:54 +08:00
TXT 记录的主机记录是什么?主域名的 TXT 记录用在其他服务上了
|
5
clanned OP @wm5d8b 同域名 TXT 记录可以有多个的,不知道有冲突没。另外这个不会影响到你的根域名 txt 记录,写入的 txt 记录是 _acme-challenge.example.com _acme-challenge.www.example.com 这样的形式。
|
7
clanned OP @wm5d8b 你是说生成的文件名吗?这是个多域名证书,域名都在 “ alternative subject name ”里,检查下证书详情应该可以看到。
|
9
aitaii 2016-04-08 22:02:58 +08:00
hello,i have a problem:ERROR: Problem connecting to server (curl returned with 7)
+ ERROR: An error occurred while sending post-request to https://acme-v01.api.letsencrypt.org/acme/new-authz (Status 400) Details: {"type":"urn:acme:error:badNonce","detail":"JWS has no anti-replay nonce","status":400} how to do it ? |
10
aitaii 2016-04-08 22:13:12 +08:00
Domain locked,please unlock domain
first in other option page 该域名已被用户锁定,请先解锁 |
11
clanned OP @aitaii 参考这里 https://community.letsencrypt.org/t/getting-the-client-sent-an-unacceptable-anti-replay-nonce/9172/18 应该是 le 服务端的问题,建议重试下,注意尽量不要超过一周内七次的限制
|
12
YvesX 2016-04-11 02:05:56 +08:00
呀,发现了一个对我而言尽善尽美的办法,不枉熬夜。
赞扬楼主! |
13
jackton 2016-09-22 09:49:43 +08:00
这办法不错.试试
|
14
kyvi 2016-12-16 09:32:21 +08:00
@clanned ,问你个问题, letsencrypt 实现自动更新证书,我查的好像都是要更新或者 reload web 服务器才可以,我这的是 tomcat 上配置的 ssl 证书,有办法不重启 tomcat 更新 ssl 证书吗?毕竟生产环境没有办法频繁重启 tomcat
|
15
clanned OP |
16
kyvi 2016-12-19 11:33:29 +08:00
@clanned ,我还有个问题想请教下, https://www.v2ex.com/t/328499#reply3
|
17
wkl17 2017-08-19 21:47:20 +08:00
如果能加个判断 异常时 自动重试 就更好了。(因为过程中,有时会遇到 403 之类的错误,遇到至少 2 次还是 3 次了 就中断了,必须重新执行)
|