V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
如果你希望学习 CDN 相关知识,那么建议你可以遍历以下软件的说明文档。
NGINX
cURL
cy97cool
V2EX  ›  CDN

upyun 没提供 https 证书更新的 API 不如自己写一个(以及日志下载)

  •  
  •   cy97cool · 2020-01-16 10:20:18 +08:00 · 1087 次点击
    这是一个创建于 1807 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/zjuchenyuan/EasyLogin/blob/master/examples/upyun/upyun.py

    基于我的 EasyLogin 写的,其实就是封装了一下 requests 和 Beautifulsoup,提供了 cookie 保存和内容缓存机制

    这个 upyun.py 会登录 console.upyun.com ,提供规则刷新和 https 证书更新功能,用法如

    # 这里的 @会被替换成*, 刷新 https://py3.io/*.html 的缓存
    python3 upyun.py purge https://py3.io/@.html
    
    # 查看所有证书,只显示当前正在使用的自有证书+正在使用的已经过期的证书
    python3 upyun.py https list
    
    # 更新所有 30 天之内过期的证书
    python3 upyun.py https renew
    

    更新证书除了需要在 config.py 中提供登录的USERNAMEPASSWORD之外,还需要提供一个 api_func(domain_name)函数,这个函数需要返回证书信息

     {"certificate":"-----BEGIN CERTIFICATE-----\n...", 
      "private_key":"-----BEGIN RSA PRIVATE KEY-----\n..."}
    

    我是使用函数计算用 dns 验证自动更新证书: https://py3.io/Nginx/#https_1

    这个函数就是这个样子:(注意到传入的域名可能是子域名 需要判断后缀)

    def renew_api(domain):
        namedict = {
          'py3.io': 'py3io_ATxx', 
        }
        for k, v in namedict.items():
            if domain.endswith(k):
                return get_from_oss(v)
        return False
    
    import requests
    sess = requests.session()
    def get_from_oss(name):
        crt = sess.get("https://OSSNAME.oss-cn-REGION.aliyuncs.com/{name}.crt".format(name=name), headers={"Referer":"Referer_STRING"})
        key = sess.get("https://OSSNAME.oss-cn-REGION.aliyuncs.com/{name}.key".format(name=name), headers={"Referer":"Referer_STRING"})
        return {"certificate": crt.text, "private_key": key.text}
    

    另外 upyun 真的会在 30 天删访问日志,然而法律要求至少保留六个月┑( ̄Д  ̄)┍ 所以需要自己下载日志咯: https://github.com/zjuchenyuan/EasyLogin/blob/master/examples/upyun/downloadlogs.py

    config.py 读取 mydomains,调用 upyun 提供的 openapi 获取日志并下载

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4024 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:19 · PVG 13:19 · LAX 21:19 · JFK 00:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.