cloudxns DNS 验证方式快速获取 lets-encrypt 证书的 shell 脚本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
clanned
V2EX    分享创造

cloudxns DNS 验证方式快速获取 lets-encrypt 证书的 shell 脚本

  •  4
     
  •   clanned 2016-02-02 13:51:52 +08:00 8056 次点击
    这是一个创建于 3599 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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_KEYSECRET_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

    第 1 条附言    2016-02-21 13:31:02 +08:00

    正文的 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

    17 条回复    2017-08-19 21:47:20 +08:00
    xonze
        1
    xonze  
       2016-02-02 14:19:48 +08:00
    牛 x ,这个方法好
    mdemo
        2
    mdemo  
       2016-02-02 14:22:59 +08:00
    CloudXNS
        3
    CloudXNS  
       2016-02-02 14:29:59 +08:00   1
    这个不错,不过应该首发到 X 社区才是(●ˇˇ●)
    wm5d8b
        4
    wm5d8b  
       2016-02-02 17:13:54 +08:00
    TXT 记录的主机记录是什么?主域名的 TXT 记录用在其他服务上了
    clanned
        5
    clanned  
    OP
       2016-02-02 17:28:07 +08:00   1
    @wm5d8b 同域名 TXT 记录可以有多个的,不知道有冲突没。另外这个不会影响到你的根域名 txt 记录,写入的 txt 记录是 _acme-challenge.example.com _acme-challenge.www.example.com 这样的形式。
    wm5d8b
        6
    wm5d8b  
       2016-02-06 20:02:59 +08:00
    @clanned 今天试了试, CERT_DOMAINS 中有多个域名时,最后输出的证书只有第一个
    clanned
        7
    clanned  
    OP
       2016-02-06 21:53:32 +08:00
    @wm5d8b 你是说生成的文件名吗?这是个多域名证书,域名都在 “ alternative subject name ”里,检查下证书详情应该可以看到。
    wm5d8b
        8
    wm5d8b  
       2016-02-07 14:58:51 +08:00
    @clanned 原来如此, SAN(Subject Alternative Name)就是多域名证书。
    aitaii
        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 ?
    aitaii
        10
    aitaii  
       2016-04-08 22:13:12 +08:00
    Domain locked,please unlock domain

    first in other option page

    该域名已被用户锁定,请先解锁
    clanned
        11
    clanned  
    OP
       2016-04-09 07:42:32 +08:00 via Android
    @aitaii 参考这里 https://community.letsencrypt.org/t/getting-the-client-sent-an-unacceptable-anti-replay-nonce/9172/18 应该是 le 服务端的问题,建议重试下,注意尽量不要超过一周内七次的限制
    YvesX
        12
    YvesX  
       2016-04-11 02:05:56 +08:00
    呀,发现了一个对我而言尽善尽美的办法,不枉熬夜。
    赞扬楼主!
    jackton
        13
    jackton  
       2016-09-22 09:49:43 +08:00
    这办法不错.试试
    kyvi
        14
    kyvi  
       2016-12-16 09:32:21 +08:00
    @clanned ,问你个问题, letsencrypt 实现自动更新证书,我查的好像都是要更新或者 reload web 服务器才可以,我这的是 tomcat 上配置的 ssl 证书,有办法不重启 tomcat 更新 ssl 证书吗?毕竟生产环境没有办法频繁重启 tomcat
    clanned
        15
    clanned  
    OP
       2016-12-16 10:40:11 +08:00 via Android
    kyvi
        16
    kyvi  
       2016-12-19 11:33:29 +08:00
    @clanned ,我还有个问题想请教下, t/328499#reply3
    wkl17
        17
    wkl17  
       2017-08-19 21:47:20 +08:00
    如果能加个判断 异常时 自动重试 就更好了。(因为过程中,有时会遇到 403 之类的错误,遇到至少 2 次还是 3 次了 就中断了,必须重新执行)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana &nbp;   975 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:41 PVG 03:41 LAX 11:41 JFK 14:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86