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

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

1. 功能

  • 支持加速域名证书定时检测、证书申请和上传
  • 支持UI查看域名证书状态,手动更新状态和证书
  • 支持匹配多级域名、全域名
  • 支持指定证书申请机构
  • 支持证书过期邮件通知
  • 支持命令行、Docker运行

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/configs/config.py \
  -v $PWD/configs/providers.yml:/home/configs/providers.yml \
  -v $PWD/configs/secret.py:/home/configs/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/configs/config.py \
  -v $PWD/configs/providers.yml:/home/configs/providers.yml \
  -v $PWD/configs/secret.py:/home/configs/secret.py \
  -d cdn-auto-cert-ui:latest

4.截图

logs
ui

5.项目地址

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容