如果你的站点用了 HTTPS,那你多半经历过这样的麻烦:证书快过期了才发现、手动去控制台换证书、续期脚本写不好、部署到 CDN 又要重新配一遍……今天介绍一个把这件事彻底交给自动化工具的项目——AllinSSL,一个集证书申请、管理、部署和监控于一体的 SSL 证书全生命周期管理工具。

🔒 项目地址:https://github.com/allinssl/allinssl(AGPL-3.0 开源)

这是什么

AllinSSL 是一个「一站式」的 SSL 证书管理方案。它不是只帮你申请证书,而是把从申请到部署再到到期提醒的完整生命周期串成一条自动化流水线:

  • 证书申请 / 自动续期
  • 多平台部署(CDN / WAF / 面板 / 云存储)
  • 证书过期监控与告警
  • 安全入口保护(登录地址是随机路径,防扫描)
  • 可视化证书管理(Web 控制台 + 工作流画布)

一句话:你只管维护域名和密钥,剩下的证书续期、部署、提醒,它全自动搞定。

为什么需要它

手动管理证书的几个典型痛点:

痛点 AllinSSL 怎么解决
忘了续期导致站点挂掉 到期前 30 天自动触发续期
申请流程繁琐(DNS 验证、CSR、部署) 图形化工作流,配一次以后全自动
证书散落在各台机器/CDN 上 统一控制台管理 + 批量部署
手动部署到宝塔/1Panel/CDN 容易错 一键部署到目标平台
证书过期无人知晓 邮件 / Webhook / 钉钉 多渠道通知

支持的 CA 与提供商

证书颁发机构(CA):Let's Encrypt、ZeroSSL、Google Trust Services、SSL.com、BuyPass、TrustAsia(亚洲诚信)、Racent(锐成信息)——免费和商业的都有。

DNS 验证:阿里云、腾讯云、Cloudflare 等,还支持 acme-dns 这种独立 DNS 验证方式,以及腾讯云 EdgeOne(eo)等新平台。

部署目标:宝塔面板、1Panel、阿里云 CDN、腾讯云 COS 等。

自动化流程

AllinSSL 的核心是一个简单但高效的工作流:

text
证书申请 → 有效期监控 →(剩余 30 天)自动续期 → 部署到目标平台 → 通知结果

在控制台里,这一步是通过可视化工作流编辑器配置的:把「申请证书」「监控有效期」「自动续期」「部署到某平台」「发通知」这些节点用连线串起来,保存后系统按计划自动执行。支持多账号、多证书、多目标,一个工作流可以服务多个域名。

技术架构

  • 后端:Go 1.23+,Gin Web 框架,SQLite 数据库(modernc.org/sqlite),ACME 客户端用 go-acme/lego(证书申请核心)
  • 前端:Vue 3 + Naive UI + Vite + Turbo Monorepo,状态管理 Pinia,图表 ECharts,工作流可视化用 Vue Flow,样式 TailwindCSS
  • 云集成:阿里云、腾讯云、华为云、百度云、火山引擎、京东云、七牛云、Azure、AWS、Cloudflare 的官方 Go SDK

这套技术栈让它既能作为单机工具跑,也适合小型到中型的生产环境。

安装方式

AllinSSL 支持四种安装方式,按场景选一种即可。

① 一键安装(Linux)

bash
curl -sSO http://allinssl.bt.cn/install_allinssl.sh && bash install_allinssl.sh allinssl

备用镜像:

bash
curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl

② Docker

bash
docker run -itd \
  --name allinssl \
  -p 8888:8888 \
  -v /www/allinssl/data:/www/allinssl/data \
  -e ALLINSSL_USER=allinssl \
  -e ALLINSSL_PWD=allinssldocker \
  -e ALLINSSL_URL=allinssl \
  -e TZ=Asia/Shanghai \
  allinssl/allinssl:latest

③ 二进制安装(Linux / macOS / Windows 通用)

  1. 到 releases 页面 下载对应平台的二进制
  2. 解压后进入目录
  3. 获取登录地址和用户名:Linux 执行 ./allinssl 15,Windows 执行 .\allinssl 15
  4. 获取密码:Linux 执行 ./allinssl 6,Windows 执行 .\allinssl 6
  5. 启动服务:./allinssl start(或 .\allinssl start)
  6. 浏览器访问 http://你的IP:端口/安全入口,用账号密码登录

④ 源码编译(需要 Go 1.23+)

bash
git clone https://github.com/allinssl/allinssl.git
cd allinssl
go mod tidy
go build -o allinssl cmd/main.go
./allinssl start

首次配置:登录控制台 → 添加 DNS 提供商和主机提供商凭证 → 创建工作流。

命令行操作

AllinSSL 内置了一套编号命令,方便不做 Web 操作时快速管理:

bash
# 基本操作
allinssl 1: 启动服务            allinssl 2: 停止服务
allinssl 3: 重启服务            allinssl 4: 修改安全入口
allinssl 5: 修改用户名          allinssl 6: 修改密码
allinssl 7: 修改端口

# Web 服务管理
allinssl 8: 关闭 web 服务       allinssl 9: 开启 web 服务
allinssl 10: 重启 web 服务

# 后台任务管理
allinssl 11: 关闭后台调度       allinssl 12: 开启后台调度
allinssl 13: 重启后台调度

# 系统管理
allinssl 14: 关闭 HTTPS         allinssl 15: 获取面板地址
allinssl 16: 更新到最新版本     allinssl 17: 卸载

近期版本亮点

从提交记录和版本迭代能看出这个项目一直很活跃:

  • v1.1.4:多账号告警、本地证书替换、批量删除——多证书、多账号场景更好用了
  • 插件系统:后端模块清单与生命周期管理、认证/路由/中间件/调度/工作流的扩展点;前端模块加载器、菜单与插槽扩展、插件管理页
  • acme-dns 支持:新增独立的 DNS 验证方式
  • 腾讯云 eo:新增 DNS 提供商腾讯云 EdgeOne
  • 中文文档:全面切换到中文文档,文档站 allinssl.com

文档与社区

小结

AllinSSL 特别适合这几类场景:中小型网站运维、手上有多张证书/多个域名要管、希望 HTTPS 部署全自动。它把「申请→续期→部署→监控→通知」收敛成一个可视化工作流,配合宝塔/1Panel/CDN 等目标,几乎可以做到「证书的事再也不用管」。

如果你是站长,建议给它一个 ⭐;如果正好在纠结证书管理,值得装一套试试。

该项目由社区共同贡献,特别致谢 @寒雨馨 等开发者对项目的支持。仓库地址:https://github.com/allinssl/allinssl