CDN HTTPS 证书自动更新 - cdn-auto-cert

2023-09-22  本文已影响0人  shuhanghang

解决cdn加速域名证书过期提前自动报警和更新,基于云厂商提供的相关接口和lego(Let's Encrypt客户端)使用python实现,目前支持cdn厂商有阿里云、腾讯云、华为云,支持面板查看和操作。

1. 功能

2. 配置

  1. 公共配置文件:./configs/config.py
  2. CDN-DNS配置文件:./configs/providers.yml
  3. 供应商秘钥文件:./configs/secret.py
# cdnProvider(CDN提供商)支持: aliyun (阿里云)、tencent (腾讯云)、huawei(华为云)
# dnsProvider(DNS供应商)支持: 名称参考 https://go-acme.github.io/lego/dns/ 
# caProvider(CA供应商)支持:   letsencrypt(Let's Encrypt)、buypass(Buypass)、zerossl(ZeroSSL)
spec:
  - cdnProvider: aliyun
    description: "CDN提供商是阿里云,使用的加速域名提供商是阿里云、腾讯云"
    dns:
      - provider: alidns
        caProvider: ''    # 默认值为'letsencrypt',也可以不写该字段
        domains:
          - test1.cn           # 匹配二级域名的加速域名
          - www.test2.com      # 匹配全域名的加速域名
      - provider: tencentcloud
        domains:
          - "test1.net"

  - cdnProvider: tencent
    description: "CDN提供商是腾讯云,使用的加速域名提供商是cloudFlare、route53"
    dns:
      - provider: cloudflare
        caProvider: "zerossl"
        domains:
          - test1.xyz
      - provider: route53
        domains:
          - test1.io

  - cdnProvider: huawei
    description: "CDN提供商是华为云,使用的加速域名提供商是阿里云、Google Cloud"
    dns:
      - provider: gcloud
        caProvider: "zerossl"
        domains:
          - test1.org

提示:添加新的CDN加速域名首次需手动开启https并手动上传证书

3. 运行

1. 手动

pip3 install -r requirements.txt -i https://pypi.doubanio.com/simple
python3 auto_cert.py

2. 定时

pip3 install -r requirements.txt -i https://pypi.doubanio.com/simple
python3 auto_cert_scheduler.py

支持面板,默认账号密码:admin/admin

pip3 install -r requirements_ui.txt -i https://pypi.doubanio.com/simple
python3 app.py

3. docker

docker build -t cdn-auto-cert:latest -f Dockerfiles/basic/Dockerfile .
docker run --name cdn-auto-cert -it \
  -v $PWD/configs/config.py:/home/config/config.py \
  -v $PWD/configs/providers.yml:/home/config/providers.yml \
  -v $PWD/configs/secret.py:/home/config/secret.py \
  -d cdn-auto-cert:latest

支持面板,默认账号密码:admin/admin

docker build -t cdn-auto-cert-ui:latest -f Dockerfiles/ui/Dockerfile .
docker run --name cdn-auto-cert -it \
  -p 8080:8080 \
  -v $PWD/configs/config.py:/home/config/config.py \
  -v $PWD/configs/providers.yml:/home/config/providers.yml \
  -v $PWD/configs/secret.py:/home/config/secret.py \
  -d cdn-auto-cert-ui:latest

4.截图

logs ui

5.项目地址

https://github.com/shuhanghang/cdn-auto-cert

上一篇 下一篇

猜你喜欢

热点阅读