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 |
如果安装过程中出现错误,请安装 crontab 和 socat:
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 | listen [::]:443 ssl ipv6only=on; |
保存更改并关闭文件。
使用以下命令重新启动 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 |