SSL 证书管理系统,支持多级代理、自动续签、在线升级。MySQL + 宝塔部署。
# 国内服务器
curl -fsSL https://release-cn.cnssl.com/install.sh | sudo bash
# 海外服务器
curl -fsSL https://release-us.cnssl.com/install.sh | sudo bash完整性校验:install.sh 自动从 releases.json 强校验脚本包 sha256,校验失败立即退出。
详细部署指南见 DEPLOY.md,升级回滚演练见 UPGRADE.md。
更多安装选项
# 非交互式安装(必须提供 --site-domain 或 INSTALL_DIR)
curl ... | sudo bash -s -- -y --site-domain manager.example.com
# 或:INSTALL_DIR=/data/manager curl ... | sudo bash -s -- -y
# 指定版本安装
curl ... | sudo bash -s -- --version 0.0.9-beta| 参数 | 说明 |
|---|---|
-y |
非交互模式,自动确认(需 --site-domain 或 INSTALL_DIR) |
--site-domain <domain> |
站点域名,自动推导 INSTALL_DIR=/www/wwwroot/<domain> |
--version latest |
最新稳定版(默认) |
--version dev |
最新开发版 |
--version x.x.x |
指定版本号 |
-y 模式下数据库默认用户名/数据库名为 manager,密码留空。如需自定义传 env:
DB_USERNAME=manager DB_PASSWORD=xxx \
curl ... | sudo bash -s -- -y --site-domain manager.example.com登录管理后台 → 系统设置 → 在线升级,可视化操作。
curl -fsSL https://release-cn.cnssl.com/upgrade.sh | sudo bash更多升级选项
curl ... | bash # 升级到最新版
curl ... | bash -s -- --version 1.0.0 # 升级到指定版本
curl ... | bash -s -- --dir /path/to/app # 指定安装目录
curl ... | bash -s -- rollback # 回滚到上一版本
# artisan 命令(需进入 backend 目录)
php artisan upgrade:check # 检查更新
php artisan upgrade:run # 执行升级
php artisan upgrade:rollback # 回滚
# 用户数据管理
php artisan user:data export {user_id} # 导出用户数据(SQL dump)
php artisan user:data import {user_id} --dry-run # 干跑检测冲突
php artisan user:data import {user_id} # 导入用户数据
php artisan user:data purge {user_id} # 清理用户数据(需先禁用+导出)| 参数 | 说明 |
|---|---|
--version x.x.x |
升级到指定版本 |
--dir PATH |
指定安装目录(自动检测失败时使用) |
-y, --yes |
自动确认,非交互模式 |
rollback |
回滚到上一版本 |
通过宝塔面板删除站点 + 关联的 supervisor / cron 即可。详见 DEPLOY.md。
frontend/ # Vue 3 前端
├── shared/ # 共享组件库
├── admin/ # 管理端
└── user/ # 用户端
backend/ # Laravel 13 后端
build/ # 构建系统(见 build/README.md)
deploy/ # 部署脚本
| 组件 | 技术栈 |
|---|---|
| 后端 | Laravel 13, PHP 8.3/8.4/8.5, MySQL, Redis (可选) |
| 前端 | Vue 3, TypeScript, Element Plus, Vite |
将域名验证 CNAME 记录指向平台托管域名,实现自动续签:
_dnsauth.example.com → *******.your-platform.com
配置后,平台自动完成 DNS 验证,无需手动操作。
配合 sslctl 工具实现全自动化:
# 安装部署工具
curl -fsSL https://release.cnssl.com/sslctl/install.sh | sudo bash
# 一键部署(推荐)
sslctl setup --url https://your-platform.com --token <deploy_token> --order <order_id>
# 或手动扫描并部署
sslctl scan
sslctl deploy --cert order-12345通过 Deploy Token 认证(Authorization: Bearer <deploy_token>):
GET /api/deploy?order=123 # 按订单 ID 查询
GET /api/deploy?order=example.com # 按域名查询
GET /api/deploy?order=1,2,a.com # 批量混合查询
GET /api/deploy # 列出所有 active 订单
POST /api/deploy # 更新/续费证书
POST /api/deploy/callback # 部署结果回调Manager 作为 ACME 订阅管理平台("封装下单 + 交付 EAB"模式),自身不实现 RFC 8555 服务端;directory URL 与 EAB 凭据均由上游系统签发并透传。
# Deploy API:一步到位创建 + 支付 + 提交,返回 EAB + directory_url
curl -X POST -H "Authorization: Bearer <deploy-token>" \
-H 'Content-Type: application/json' \
-d '{"product_id": 57, "period": 12, "plus": 1}' \
https://your-platform.com/api/deploy/acme/new
# 查询订阅详情(含 EAB + directory_url)
curl -H "Authorization: Bearer <deploy-token>" \
https://your-platform.com/api/deploy/acme/<id>
# certbot 使用返回的 directory_url 注册
certbot certonly --server <directory_url> \
--eab-kid <EAB_KID> --eab-hmac-key <EAB_HMAC> \
-d example.com --preferred-challenges dns-01Web 端支持两步创建:先建立订阅(unpaid → pending),再从详情页提交到上游激活(active)。详情页展示 directory URL / EAB KID / EAB HMAC,每项可一键复制。列表页支持批量查看(聚合详情页 v-for 渲染,URL 可分享)、批量支付、提交、同步、取消、撤回取消、复制 EAB 等批量操作。
| 文档 | 说明 |
|---|---|
| DEPLOY.md | 部署指南(宝塔,含 sha256 校验、目录权限) |
| UPGRADE.md | 升级回滚演练手册(freeze 流程、smoke test、自动回滚链路) |
| skills/SKILL.md | 开发规范(按领域组织:后端 / 前端 / 部署 / 构建发布 / 插件 / ACME) |
| build/README.md | 构建系统、版本发布 |
MIT