ubuntu-debian安装ACME

获取 acme.sh

acme.sh 是一个 shell 脚本,可以自动颁发和续订来自 Let’s Encrypt 的免费证书。您可以通过直接从 Web 下载脚本或克隆其 git 项目来获取 acme.sh 脚本。
从网络下载 acme.sh
运行以下任意一个命令以下载并执行 acme.sh 脚本:

1
curl https://get.acme.sh | sh -s email=xx@cc.com

或者

1
wget -O - https://get.acme.sh | sh -s email=xx@xx.net

如果安装过程中出现错误,请安装 crontabsocat

1
apt install cron socat -y

一旦看到“安装成功!”消息,您可以关闭终端窗口并再次打开它以验证安装。
要查看 acme.sh 使用情况信息,请运行以下命令:

1
acme.sh -h

您也可以运行以下命令来检查 acme.sh 版本:

1
acme.sh --version

生成证书

单个域名证书
要为单个域名生成单个证书,请运行以下命令:

1
acme.sh --issue -d yourdomain.com -w /var/www/yourdomain.com

yourdomain.com 替换为您注册的域名,并根据需要将 /var/www/yourdomain.com 替换为您域名的网站根文件夹。
多个域名/子域名证书
对于共享同一网站根文件夹的多个域名/子域名,您可以运行以下命令来颁发证书:

1
acme.sh --issue -d yourdomain.com -d www.yourdomain.com -d subdomain.yourdomain.com -w /var/www/yourdomain.com

生成的证书将存储在 /.acme.sh/yourdomain.com 中。
使用 acme 在 NGINX 上安装证书
通过 acme.sh 脚本生成证书后,下一步是将其安装在 NGINX 上。首先,创建一个文件夹并将生成的证书复制到该文件夹:

1
sudo mkdir -p /etc/nginx/certs/yourdomain.com

然后,运行以下命令以安装证书:

1
acme.sh --install-cert -d yourdomain.com --key-file /etc/nginx/certs/yourdomain.com/key.pem --fullchain-file /etc/nginx/certs/yourdomain.com/cert.pem --reloadcmd "service nginx force-reload"

不要忘记将 yourdomain.com 替换为您注册的域名。
更新 NGINX 服务器块文件
最后一步是更新域名的服务器块文件以包含与 SSL 相关的指令。运行以下命令以编辑服务器块文件:

1
sudo nano /etc/nginx/sites-available/yourdomain.com

接下来,添加以下行:

1
2
3
4
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/nginx/certs/cloudindevs.com/cert.pem;
ssl_certificate_key /etc/nginx/certs/cloudindevs.com/key.pem;

保存更改并关闭文件。
使用以下命令重新启动 NGINX:

1
sudo systemctl restart nginx

在浏览器中访问您的网站,以确认现在已启用安全通信。
证书续订
Let’s Encrypt 颁发的证书将每 60 天自动续订一次。但是,如果您愿意,也可以手动续订证书。运行以下命令:

1
acme.sh --renew -d yourdomain.com --force

若要停止证书续订,请运行以下命令:

1
acme.sh --remove -d yourdomain.com

升级 acme.sh

建议始终使用最新版本的 acme.sh。运行以下命令以确保自动更新 acme.sh:

1
acme.sh --upgrade --auto-upgrade

若要禁用 acme.sh 的自动升级,请运行以下命令:

1
acme.sh --upgrade --auto-upgrade 0

如果您不希望 acme.sh 自动升级,请使用以下命令手动更新它:

1
acme.sh --upgrade