V2EX = way to explore
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
V2EX  ›  Python

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

  •  1
     
  •   xiexingjia · 2019-03-24 22:21:49 +08:00 · 3616 次点击
    这是一个创建于 2100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    早两天域名的 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 条回复    2019-03-25 16:17:26 +08:00
    ysc3839
        1
    ysc3839  
       2019-03-24 22:24:21 +08:00
    xiexingjia
        2
    xiexingjia  
    OP
       2019-03-24 22:26:01 +08:00
    我写完之后也发现了 acme.sh ,不过想着写了就发出来吧
    yearliny
        3
    yearliny  
       2019-03-24 22:32:20 +08:00 via Android
    30 秒可以手动复制粘贴解决的事情,用 30 分钟写个脚本,再用 30 秒部署,然后享受一行命令自动解决的快感。

    虽然手动粘贴复制操作繁琐,但问题是这玩意只需要做一次啊
    xiexingjia
        4
    xiexingjia  
    OP
       2019-03-24 22:34:34 +08:00
    Let's Encrypt 的证书有效期是 90 天呀
    baiban
        5
    baiban  
       2019-03-25 09:20:33 +08:00
    @yearliny 每 3 个月需要更新一次。
    xiexingjia
        6
    xiexingjia  
    OP
       2019-03-25 09:23:15 +08:00
    @baiban @yearliny 是的呢,所以并不是只需要做一次
    skylancer
        7
    skylancer  
       2019-03-25 09:32:34 +08:00
    @yearliny 用过 Let's Encrypt 再来说只需要做一次
    skylancer
        8
    skylancer  
       2019-03-25 09:35:53 +08:00
    其实我觉得奇怪
    现在我有时间,我折腾了脚本
    谁知道我几个月以后有没有时间人工 renew cert.
    我乘现在有时间的时候为未来做一下准备不行么
    janxin
        9
    janxin  
       2019-03-25 10:14:29 +08:00 via Android
    赞一个,我用 lego
    msg7086
        10
    msg7086  
       2019-03-25 10:28:20 +08:00 via Android
    @baiban
    @xiexingjia
    @skylancer
    惊呆了,你们 renew LE 野卡都是手动的?
    skylancer
        11
    skylancer  
       2019-03-25 10:34:54 +08:00
    @msg7086 惊呆了,你怎么会理解成我是手动的
    msg7086
        12
    msg7086  
       2019-03-25 10:55:21 +08:00
    @skylancer 不能理解为什么不是只需要做一次。
    xiexingjia
        13
    xiexingjia  
    OP
       2019-03-25 11:00:27 +08:00
    @msg7086 #3 说是手动复制黏贴,手动肯定不是只需要做一次。
    msg7086
        14
    msg7086  
       2019-03-25 11:01:35 +08:00
    @xiexingjia 哦,我以为是手动复制粘贴一下脚本的配置文件,然后以后让 cron 来跑就行了。
    titanium98118
        15
    titanium98118  
       2019-03-25 11:04:14 +08:00
    如果证书要放在不同的机器上,要怎么弄?
    alexmy
        16
    alexmy  
       2019-03-25 11:04:55 +08:00
    acme 虽然是 90 天,不过有带定时任务啊,完全不用我们操心。
    xiexingjia
        17
    xiexingjia  
    OP
       2019-03-25 11:14:11 +08:00
    @titanium98118 我只有一台机器,没考虑过多机器的情况。大概从 /etc/letsencrypt/archive 拷贝出来可以,我之前试过在两台机器挪过,能正常工作。
    msg7086
        18
    msg7086  
       2019-03-25 11:23:57 +08:00
    @titanium98118 我是直接把整个目录复制到另一台机器上,然后两台机器分别自己签自己的证书。
    7sDream
        19
    7sDream  
       2019-03-25 11:58:48 +08:00
    zealot0630
        20
    zealot0630  
       2019-03-25 12:23:40 +08:00 via Android
    更新 dns 有标准的 nsupdatw,rfc2136。bind 和 aws 的 route53 都支持,不知道国内云厂商是否支持
    LokiSharp
        21
    LokiSharp  
       2019-03-25 12:40:02 +08:00 via iPhone
    certbot
    xiexingjia
        22
    xiexingjia  
    OP
       2019-03-25 12:45:30 +08:00
    @LokiSharp 就是 certbot 的 hook 呢。
    hawhaw
        23
    hawhaw  
       2019-03-25 14:51:03 +08:00 via iPhone
    非泛域名证书,可以自动在 corn 里定时 renew,但泛域名证书不行
    Qzier
        24
    Qzier  
       2019-03-25 16:17:26 +08:00 via iPhone
    我用 caddy,自动续期
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   841 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:59 · PVG 04:59 · LAX 12:59 · JFK 15:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.