迁移acme.sh教程

1️⃣ 前提条件

  1. 旧服务器上已经安装并使用了 acme.sh 并且有有效的证书。

  2. 新服务器已经安装了 acme.sh(如果未安装,可先安装)。

  3. 两台服务器可以通过安全方式传输文件(如 scp)。


2️⃣ 安装 acme.sh(新服务器)

在新服务器执行:

curl https://get.acme.sh | sh
# 或者使用官方推荐的方式
# git clone https://github.com/acmesh-official/acme.sh.git
# cd acme.sh
# ./acme.sh --install

安装完成后,acme.sh 通常在:

~/.acme.sh/acme.sh

3️⃣ 导出旧服务器证书

在旧服务器上执行:

# 导出 acme.sh 配置(含账号和证书)
acme.sh --backup ~/acme_backup.tar

这条命令会生成一个 acme_backup.tar 文件,里面包含:

  • 所有域名证书

  • acme.sh 配置和账号信息

  • 自动续期脚本

⚠️ 注意:一定要把这个备份文件安全地传输,不要泄露。


4️⃣ 将备份文件传到新服务器

假设新服务器 IP 为 NEW_SERVER_IP,用户名为 user

scp ~/acme_backup.tar user@NEW_SERVER_IP:~

5️⃣ 在新服务器恢复 acme.sh

登录新服务器后,执行:

# 恢复备份
acme.sh --restore ~/acme_backup.tar

恢复后,你可以查看已有的证书:

acme.sh --list

确认所有证书和域名都已经导入。


6️⃣ 测试续期(可选)

为了确保自动续期正常,可以先手动测试:

acme.sh --renew-all --dry-run

如果一切正常,输出会显示“success”。


7️⃣ 配置自动续期(可选)

acme.sh 默认会在用户 crontab 中自动设置续期任务,你可以查看:

crontab -l

如果没有,可以手动添加:

0 0 * * * "~/.acme.sh"/acme.sh --cron --home "~/.acme.sh" > /dev/null

8️⃣ 使用证书

如果你之前使用 nginxapache 或其他服务,可以直接引用恢复后的证书:

~/.acme.sh/<your_domain>/fullchain.cer
~/.acme.sh/<your_domain>/<your_domain>.key

可以在 acme.sh --install-cert 时自动安装到指定路径。


9️⃣ 可选:迁移到系统级证书目录

如果你希望证书统一管理,可以执行:

acme.sh --install-cert -d example.com \
--key-file /etc/ssl/private/example.com.key \
--fullchain-file /etc/ssl/certs/example.com.crt \
--reloadcmd "systemctl reload nginx"

这样在续期后会自动替换并重载服务。


✅ 总结

迁移流程核心是:

  1. 备份旧服务器 acme.sh 数据。

  2. 传输到新服务器。

  3. 恢复数据。

  4. 验证证书列表和续期功能。

  5. 更新服务配置引用新证书。


 

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享