CCAV - 媚眼如初 岁月如故 - SSL
type: channel
link: https://ccav.me/tag/SSL/
items: 为SolusVM设置acme.sh自动续期Let’s Encrypt证书

为SolusVM设置acme.sh自动续期Let’s Encrypt证书
type: item
date: 2025-07-11T17:51:00+08:00
description: 我最初尝试使用 论坛和网上有人提到的 svmstack-letsencrypt 包，但就是不行。一番查找之后，我发现有人在使用一个 acme.sh 脚本。 我甚至联系了支持人员，并引用他们的话， letsencrypt 脚本并不适合所有人，他们还建议我使用acme.sh，所以这些是我在我们的 SolusVM 主服务器上安装多域证书所执行的步骤。 您可以按照 ACME Deploy SolusVM 说明中的步骤进行操作，但如果您像我一样运行 CentOS 7.x，那么您的某些步骤会略有不同。首先下载并安装脚本curl https://get.acme.sh | sh现在，这会将脚本以 .acme.sh/acme.sh 的形式安装到您的用户帐户中，并添加一个别名。完成后，您需要注销并重新登录，以便系统识别更新后的 shell 路径。 接下来确保该文件夹可用，如果不可用，您可能需要升级整个安装，以便目录存在并且 Nginx 具有将 ACME 请求传递到正确目录的配置。ls -la /usr/local/solusvm/www/.verification自 2022 年以后，acme.sh 默认将 CA 改为 ZeroSSL，如果没有设置邮箱，会卡在获取 EAB 授权这一步。Let’s Encrypt 则不需要账号注册，可直接申请证书，我们切换CA为 Let’s Encrypt。acme.sh --set-default-ca --server letsencrypt如果提示 -bash: acme.sh: command not found则需要手动加载source ~/.bashrc如果没问题，接下来我们就可以获取证书了。acme.sh --issue -d example.com -d www.example.net -w /usr/local/solusvm/www/.verification之后您需要安装证书。acme.sh --installcert -d example.com -d www.example.net --keypath /usr/local/svmstack/nginx/ssl/ssl.key --fullchainpath /usr/local/svmstack/nginx/ssl/ssl.crt --reloadcmd "systemctl restart svmstack-nginx; cd /usr/local/svmstack/nginx/ssl && cat ssl.key ssl.crt > ssl.pem"完成这些步骤后，我可以浏览 SolusVM 主机上的每个 URL，并看到它现在正在使用 Let's Encrypt 证书。此证书将通过 Let's Encrypt 自动续订，但您需要一个 cron 来更新。这是我的0 0 * * * “/root/.acme.sh”/acme.sh --cron --home “/root/.acme.sh” > /dev/null60天后会通过cron自动尝试证书renew。文章转自 https://centosquestions.com/setup-solusvm-with-lets-encrypt-free-ssl-certificate/