Let's Encrypt 证书一键申请 / 管理 / 续期 / 删除的 Web 面板。多用户各装各的,数据在各自家目录,天然隔离。
npm install -g acme-manager-cliacme start
# 或指定端口 / 密码
acme start --port 8080 --password 你的密码打开 http://127.0.0.1:8080(默认)即可使用。
- 首次启动自动创建数据目录
~/.acme-manager/(config.json、db.sqlite、证书文件) - 每个用户在自己的家目录运行各自实例,端口、密码、数据完全独立
- 一键申请证书:HTTP-01(自动占用 80 端口响应验证)/ Webroot(验证文件写入网站目录)/ DNS-01(支持通配符证书)
- 多域名 SAN 证书(每行一个,支持
*.example.com) - 证书管理:列表、到期剩余天数、详情、下载 zip(fullchain.pem + privkey.pem)、删除
- 手动续期 + 每日自动检查续期(到期前 30 天,可在设置中调整)
- DNS 服务商:Cloudflare / 阿里云 / DNSPod,凭证在设置页管理
- ACME 环境切换:staging(测试)/ production(生产),默认 staging
- 可选密码保护(config.json 设置 password)
首次运行自动生成:
{
"host": "127.0.0.1",
"port": 8080,
"password": "",
"acmeEnv": "staging",
"autoRenew": true,
"renewBeforeDays": 30
}修改后重启生效。
签发成功后保存在 ~/.acme-manager/certs/<域名>/:
fullchain.pem 完整证书链
privkey.pem 私钥
直接在 Nginx 中引用:
ssl_certificate /home/你的用户名/.acme-manager/certs/example.com/fullchain.pem;
ssl_certificate_key /home/你的用户名/.acme-manager/certs/example.com/privkey.pem;- HTTP-01 独立模式需要 80 端口空闲且以 root 运行(
sudo acme start);否则请用 webroot 或 DNS-01 - 通配符域名只能用 DNS-01
- 首次申请建议先用默认 staging 环境验证流程,确认没问题后在设置中切换 production
- 证书续期后需要重启你的 Web 服务(如
nginx -s reload)才会生效
npm install
npm start依赖仅 3 个:express / acme-client / better-sqlite3。Node >= 18。