Certimate - SSL证书自动化续期管理
Certimate 是一个开源的SSL证书管理工具,旨在简化SSL证书的申请、部署和续期流程。
特点
- 操作简单:自动申请、部署、续期 SSL 证书,全程无需人工干预。
- 支持私有部署:部署方法简单,只需下载二进制文件执行即可。二进制文件、Docker 镜像全部用 Github Actions 生成,过程透明,可自行审计。
- 数据安全:由于是私有部署,所有数据均存储在本地,不会保存在服务商的服务器,确保数据的安全性。
安装
- Docker 安装
mkdir -p ~/.certimate && cd ~/.certimate && curl -O https://raw.githubusercontent.com/usual2970/certimate/refs/heads/main/docker/docker-compose.yml && docker compose up -d
使用
- 执行完上述安装操作后,在浏览器中访问 http://127.0.0.1:8090 即可访问 Certimate 管理页面。
用户名:admin@certimate.fun
密码:1234567890
支持的服务商列表
服务商 | 支持申请证书 | 支持部署证书 | 备注 |
---|---|---|---|
阿里云 | √ | √ | 可签发在阿里云注册的域名;可部署到阿里云 OSS、CDN、SLB |
腾讯云 | √ | √ | 可签发在腾讯云注册的域名;可部署到腾讯云 COS、CDN、ECDN、CLB、TEO |
百度智能云 | √ | 可部署到百度智能云 CDN | |
华为云 | √ | √ | 可签发在华为云注册的域名;可部署到华为云 CDN、ELB |
七牛云 | √ | 可部署到七牛云 CDN | |
多吉云 | √ | 可部署到多吉云 CDN | |
火山引擎 | √ | √ | 可签发在火山引擎注册的域名;可部署到火山引擎 Live、CDN |
AWS | √ | 可签发在 AWS Route53 托管的域名 | |
CloudFlare | √ | 可签发在 CloudFlare 注册的域名;CloudFlare 服务自带 SSL 证书 | |
GoDaddy | √ | 可签发在 GoDaddy 注册的域名 | |
Namesilo | √ | 可签发在 Namesilo 注册的域名 | |
PowerDNS | √ | 可签发在 PowerDNS 托管的域名 | |
HTTP 请求 | √ | 可签发允许通过 HTTP 请求修改 DNS 的域名 | |
本地部署 | √ | 可部署到本地服务器 | |
SSH | √ | 可部署到 SSH 服务器 | |
Webhook | √ | 可部署时回调到 Webhook | |
Kubernetes | √ | 可部署到 Kubernetes Secret |
概念
Certimate 的工作流程如下:
- 用户通过 Certimate 管理页面填写申请证书的信息,包括域名、DNS 服务商的授权信息、以及要部署到的服务商的授权信息。
- Certimate 向证书厂商的 API 发起申请请求,获取 SSL 证书。
- Certimate 存储证书信息,包括证书内容、私钥、证书有效期等,并在证书即将过期时自动续期。
- Certimate 向服务商的 API 发起部署请求,将证书部署到服务商的服务器上。
这就涉及域名、DNS 服务商的授权信息、部署服务商的授权信息等。
1. 域名
就是要申请证书的域名。
2. DNS 服务商授权信息
给域名申请证书需要证明域名是你的,所以我们手动申请证书的时候一般需要在域名服务商的控制台解析记录中添加一个 TXT 域名解析记录。
Certimate 会自动添加一个 TXT 域名解析记录,你只需要在 Certimate 后台中填写你的域名服务商的授权信息即可。
比如你在阿里云购买的域名,授权信息如下:
accessKeyId: your-access-key-id
accessKeySecret: your-access-key-secret
在腾讯云购买的域名,授权信息如下:
secretId: your-secret-id
secretKey: your-secret-key
注意,此授权信息需具有访问域名及 DNS 解析的管理权限,具体的权限清单请参阅各服务商自己的技术文档。
3. 部署服务商授权信息
Certimate 申请证书后,会自动将证书部署到你指定的目标上,比如阿里云 CDN,Certimate 会根据你填写的授权信息及域名找到对应的 CDN 服务,并将证书部署到对应的 CDN 服务上。
部署服务商授权信息和 DNS 服务商授权信息基本一致,区别在于 DNS 服务商授权信息用于证明域名是你的,部署服务商授权信息用于提供证书部署的授权信息。
注意,此授权信息需具有访问部署目标服务的相关管理权限,具体的权限清单请参阅各服务商自己的技术文档。
评论
0 评论