技术研讨
2025-12-23
技术研讨
0
请注意,本文编写于 162 天前,最后修改于 159 天前,其中某些信息可能已经过时。

目录

Certimate:一站式自动化 SSL 证书管理解决方案
项目地址
一、安装 Docker和Docker Compose
1、安装docker
2、安装Docker Compose
二、部署 Certimate
1、手动或者命令建文件夹
2、创建文件docker-compose.yml
3、启动容器
三、访问管理面板
四、开启https访问面板
1、添加授权
①添加docke访问宿主机器的ip和相关的ssh链接信息
②获取 DNS 的授权API 令牌
③ 添加域名 API 授权
2、新建工作流
五、通过 Nginx 反代访问
1. 安装 Nginx
2. 修改 Nginx 配置
3. 检测配置并重启 Nginx
4. 修改 Docker 端口映射
六、总结

Certimate:一站式自动化 SSL 证书管理解决方案

Certimate 是一个支持全自动化 SSL 证书管理的工具,可帮助你实现证书的申请、验证、签发、部署和续期的全流程自动化

  • 🔐 证书全生命周期自动化:从申请、验证、签发到部署、续期,全流程无需人工干预
  • 🌍 多类型证书支持:单域名、多域名、泛域名,RSA / ECC 均可
  • 🧩 灵活的验证方式:支持 DNS-01 与 HTTP-01 质询
  • 🚀 多平台部署能力:证书可自动部署到 Kubernetes、CDN、WAF、负载均衡等 100+ 目标
  • 🏢 丰富的 DNS 厂商支持:阿里云、腾讯云、Cloudflare 等 60+ 域名托管商
  • 📦 多种证书格式输出:PEM、PFX、JKS 等
  • 🔔 完善的通知机制:支持邮件、钉钉、飞书、企业微信、Webhook
  • 🏛 多 CA 机构支持:Let’s Encrypt、Google Trust Services、ZeroSSL、SSL.com

👉 一句话总结:Certimate 让 SSL 证书管理从“人工运维”升级为“自动化托管”。

警告

鉴于 Certimate 的特殊工作性质,不建议将其部署在可公开访问的 Web 服务器上。虽然大部分操作都需要登录验证,但应用程序本身及 API 接口未经专门安全加固处理。

首次登录后,请务必立即修改初始的管理员账号及密码。

项目地址

官方文档提供多种安装方式 官方文档

一、安装 Docker和Docker Compose

详细的安装教程参考往期文章 Docker 与 Docker Compose 安装与常用命令大全

1、安装docker

bash
curl -fsSL https://get.docker.com | bash

2、安装Docker Compose

bash
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose #赋予执行权限 sudo chmod +x /usr/local/bin/docker-compose

二、部署 Certimate

1、手动或者命令建文件夹

bash
mkdir -p /certimate cd /certimate

2、创建文件docker-compose.yml

bash
vi docker-compose.yml

写入以下内容:

yml
version: "3.0" services: certimate: image: certimate/certimate:latest container_name: certimate ports: - "8090:8090" volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./data:/app/pb_data restart: unless-stopped

Docker 镜像已在容器内默认监听 0.0.0.0:8090。因此你只需要修改其端口映射,即可在宿主机上通过其他地址访问 Certimate。

3、启动容器

bash
docker-compose up -d

三、访问管理面板

部署完成后,在浏览器中访问:

bash
http://服务器IP:8090

即可进入 Certimate 管理面板。
初始的管理员账号及密码:

⚠️ 首次登录后,请立即修改默认账号和密码!

首次登录Certimate管理面板

四、开启https访问面板

提示

推荐:
如果使用了Certbot 自动申请 HTTPS 证书直接到 第五步
Certbot 自动申请 HTTPS 证书 流程参考

1、添加授权

添加授权

①添加docke访问宿主机器的ip和相关的ssh链接信息

添加本地机器的授权

②获取 DNS 的授权API 令牌

  • 我使用的是Cloudflare

    账户 → 配置文件 → API 令牌 → 创建令牌 → 编辑区域 DNS(模板)

获取 DNS 的授权API 令牌

提示

保存好你的 授权API 令牌 不要泄露

③ 添加域名 API 授权

添加域名api授权

2、新建工作流

  • 选择模板 → 配置域名 → 配置部署路径和机器 → 删除不需要的通知流程 → 发布更改
  • 申请成功后,证书和私钥会保存在指定路径

新建工作流

选择模板

配置域名

配置部署路径和机器

删除通知流程

发布更改

申请成功

五、通过 Nginx 反代访问

1. 安装 Nginx

可以参考安装 Nginx与 Certbot 自动申请 SSL 证书教程

2. 修改 Nginx 配置

配置文件的路径是/etc/nginx/sites-available/default

bash
cd /etc/nginx/sites-available

示例配置:

text
# 强制 HTTPS server { listen 80; listen [::]:80; server_name 你的域名; return 301 https://$host$request_uri; } # HTTPS 主站 server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name 你的域名; server_tokens off; ssl_certificate /etc/ssl/certimate/fullchain.pem; ssl_certificate_key /etc/ssl/certimate/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; ssl_stapling on; ssl_trusted_certificate /etc/ssl/certimate/fullchain.pem; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; underscores_in_headers on; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_pass http://127.0.0.1:8090; } }

3. 检测配置并重启 Nginx

bash
sudo nginx -t sudo systemctl restart nginx

4. 修改 Docker 端口映射

docker-compose.yml 中端口修改为仅监听本地:

text
version: "3.0" services: certimate: image: certimate/certimate:latest container_name: certimate ports: - "127.0.0.1:8090:8090" volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./data:/app/pb_data restart: unless-stopped

重新部署容器:

bash
docker-compose up -d --force-recreate

现在 Certimate 面板只能通过域名访问,实现统一管理证书。

六、总结

1、暂时不知道在docker内部直接申请证书私钥到宿主机器,有大佬知道可以补充

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:猪聪聪

联系邮箱::[email protected]

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!