CertShip - 自动化OSS证书绑定工具

This article isn’t available in English yet. Here’s the 简体中文 version for now.
CertShip Logo

一个使用 acme.sh 自动申请SSL证书,并自动绑定到云平台对象存储(如阿里云 AliOSS)的工具。

起因就是因为这个博客的静态资源托管到Vercel之类的话速度太慢,就放到了国内的平台,但国内平台需要域名备案而且SSL不免费,就写了这个工具 用 acme 从 Let’s Encrypt 之类的申请证书,并且绑定到 OSS Bucket 的域名。

  • 证书来源:Let’s Encrypt(acme.sh 仅为签发工具)
  • 特别鸣谢: Github Copilot 的帮助
  • 特别感谢:acme.sh 的作者 Neilpang
  • 特别感谢:Sora 给生成的 Logo

安装依赖

poetry install

用法

你可以通过 poetry 运行工具:

poetry run certship --help

或直接运行:

python3 -m src.cli --help

示例

poetry run certship \
  --domain <你的域> \
  --dns-provider <dns服务商,默认ali> \
  --platform alioss \
  --oss-bucket <OSS bucket名> \
  --oss-endpoint <OSS endpoint> \
  --ali-key <阿里云AccessKeyId> \
  --ali-secret <阿里云AccessKeySecret> \
  [--ecc] [--run] [--force] [--debug]

参数说明

  • --domain:要申请证书的域名(必填)
  • --dns-provider:DNS 服务商,默认 ali(可选,acme.sh 支持的 DNS 插件,详见 acme.sh 文档)
  • --platform:目标平台,目前仅支持 alioss 或 tencentcos(必填)
  • --oss-bucket:阿里云 OSS 的 bucket 名称(alioss 必填)
  • --oss-endpoint:OSS 的 endpoint(alioss 必填)
  • --ali-key:阿里云 AccessKeyId(alioss 必填)
  • --ali-secret:阿里云 AccessKeySecret(alioss 必填)
  • --ecc:使用 ECC 证书(可选)
  • --run:执行证书签发和部署(可选,不加则只部署已有证书)
  • --force:强制续签证书(可选)
  • --debug:acme.sh 调试模式(可选)

依赖环境

  • Python 3.8+
  • poetry
  • acme.sh(需提前安装并配置好)
  • ossutil64(需提前安装并配置好)

典型流程

  1. 安装依赖:poetry install
  2. 安装 acme.sh 并配置好 DNS API
  3. 安装并配置好 ossutil64(需有 yundun-cert:CreateSSLCertificate 权限)
  4. 运行上述命令自动签发并绑定证书

支持计划

  • 阿里云 AliOSS
  • 腾讯云 COS
  • 本地 Nginx
  • 七牛云

欢迎 PR!

This site is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Comments