写了一个 Let's Encrypt 的 wildcard 证书小工具 - V2EX
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
xiexingjia

写了一个 Let's Encrypt 的 wildcard 证书小工具

  •  1
     
  •   xiexingjia Mar 24, 2019 4219 views
    This topic created in 2607 days ago, the information mentioned may be changed or developed.

    早两天域名的 https 证书要到期了,用的是 Let's Encrypt 的 wildcard 证书,这种证书需要添加 DNS 解析记录来验证域名所有权。

    之前申请的时候手动添加记录,当为多个域名(如 example.com 和 *.example.com )申请 SAN 证书时,需分别添加多条记录,略觉麻烦且容易出错。

    于是寻思找一个工具自动化该过程,在 Github 上找到了一个 certbot-letencrypt-wildcardcertificates-alydns-au,由于我的域名使用腾讯云解析,而该工具仅提供了 PHP 版本的腾讯云钩子,服务器没有 PHP 环境又不想安装。

    于是动手写了一个 https://github.com/akgnah/certbot-wildcard-qcloud-hook ,求建议求 Star。

    拓展阅读:

    如何免费的让网站启用 HTTPS | | 酷 壳 - CoolShell

    Let's Encrypt 终于支持通配符证书了 - 简书

    24 replies    2019-03-25 16:17:26 +08:00
    ysc3839
    &nbs;   1
    ysc3839  
       Mar 24, 2019
    xiexingjia
        2
    xiexingjia  
    OP
       Mar 24, 2019
    我写完之后也发现了 acme.sh ,不过想着写了就发出来吧
    yearliny
        3
    yearliny  
       Mar 24, 2019 via Android
    30 秒可以手动复制粘贴解决的事情,用 30 分钟写个脚本,再用 30 秒部署,然后享受一行命令自动解决的快感。

    虽然手动粘贴复制操作繁琐,但问题是这玩意只需要做一次啊
    xiexingjia
        4
    xiexingjia  
    OP
       Mar 24, 2019
    Let's Encrypt 的证书有效期是 90 天呀
    baiban
        5
    baiban  
       Mar 25, 2019
    @yearliny 每 3 个月需要更新一次。
    xiexingjia
        6
    xiexingjia  
    OP
       Mar 25, 2019
    @baiban @yearliny 是的呢,所以并不是只需要做一次
    skylancer
        7
    skylancer  
       Mar 25, 2019
    @yearliny 用过 Let's Encrypt 再来说只需要做一次
    skylancer
        8
    skylancer  
       Mar 25, 2019
    其实我觉得奇怪
    现在我有时间,我折腾了脚本
    谁知道我几个月以后有没有时间人工 renew cert.
    我乘现在有时间的时候为未来做一下准备不行么
    janxin
        9
    janxin  
       Mar 25, 2019 via Android
    赞一个,我用 lego
    msg7086
        10
    msg7086  
       Mar 25, 2019 via Android
    @baiban
    @xiexingjia
    @skylancer
    惊呆了,你们 renew LE 野卡都是手动的?
    skylancer
        11
    skylancer  
       Mar 25, 2019
    @msg7086 惊呆了,你怎么会理解成我是手动的
    msg7086
        12
    msg7086  
       Mar 25, 2019
    @skylancer 不能理解为什么不是只需要做一次。
    xiexingjia
        13
    xiexingjia  
    OP
       Mar 25, 2019
    @msg7086 #3 说是手动复制黏贴,手动肯定不是只需要做一次。
    msg7086
        14
    msg7086  
       Mar 25, 2019
    @xiexingjia 哦,我以为是手动复制粘贴一下脚本的配置文件,然后以后让 cron 来跑就行了。
    titanium98118
        15
    titanium98118  
       Mar 25, 2019
    如果证书要放在不同的机器上,要怎么弄?
    alexmy
        16
    alexmy  
       Mar 25, 2019
    acme 虽然是 90 天,不过有带定时任务啊,完全不用我们操心。
    xiexingjia
        17
    xiexingjia  
    OP
       Mar 25, 2019
    @titanium98118 我只有一台机器,没考虑过多机器的情况。大概从 /etc/letsencrypt/archive 拷贝出来可以,我之前试过在两台机器挪过,能正常工作。
    msg7086
        18
    msg7086  
       Mar 25, 2019
    @titanium98118 我是直接把整个目录复制到另一台机器上,然后两台机器分别自己签自己的证书。
    7sDream
        19
    7sDream  
       Mar 25, 2019
    zealot0630
        20
    zealot0630  
       Mar 25, 2019 via Android
    更新 dns 有标准的 nsupdatw,rfc2136。bind 和 aws 的 route53 都支持,不知道国内云厂商是否支持
    LokiSharp
        21
    LokiSharp  
       Mar 25, 2019 via iPhone
    certbot
    xiexingjia
        22
    xiexingjia  
    OP
       Mar 25, 2019
    @LokiSharp 就是 certbot 的 hook 呢。
    hawhaw
        23
    hawhaw  
       Mar 25, 2019 via iPhone
    非泛域名证书,可以自动在 corn 里定时 renew,但泛域名证书不行
    Qzier
        24
    Qzier  
       Mar 25, 2019 via iPhone
    我用 caddy,自动续期
    About     Help     Advertise     Blog     API     FAQ     Solana     4102 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 67ms UTC 04:16 PVG 12:16 LAX 21:16 JFK 00:16
    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