Loading... 本文主要是记录 acmesh 的使用,**acme.sh** 实现了 `acme` 协议,可以从 letsencrypt 生成免费的证书。 ## 1. 安装 acme.sh 服务器终端输入一下命令 ```bash curl https://get.acme.sh | sh -s email=my@example.com ``` 参考 acme.sh 官方文档,可创建一个 alias,方便使用 ```bash alias acme.sh=~/.acme.sh/acme.sh ``` ## 2. 生成证书 **获取 cloudflare API key** 地址:https://dash.cloudflare.com/profile/api-tokens  **设置 cloudflare API key** 服务器终端输入一下命令 ```bash export CF_Key="cloudflare 中查看你的 key" export CF_Email="你的 cloudflare 邮箱" ``` **生成和安装证书** 服务器终端输入一下命令 ```bash acme.sh --issue -d "yourdomain.com" -d "*.yourdomain.com" --dns dns_cf \ --key-file /home/ubuntu/ssl/yourdomain.key \ --fullchain-file /home/ubuntu/ssl/yourdomain.pem \ --reloadcmd "docker restart nginx" ``` - 将 `yourdomain.com` 替换为自己的域名,* 表示泛域名证书,也一并修改 - key file 和 fullchain file 目录可以按照实际需求更改 - reloadcmd 表示证书部署后需要执行的命令,按照实际情况修改,我这边是 docker 部署的 Nginx,直接重启了对应的 docker 容器 - 脚本会去 cloudflare 设置一条验证的解析记录,默认等待 900 秒,cloudflare 生效很快,不用修改,如果慢的话,可设置 `--dnssleep 1600` 参数,数字为等待时间,单位为秒 ## 3. 最后 经过以上几步后,acme.sh 会在证书到期前自动更新 **移除域名证书自动更新** ```bash acme.sh --remove -d yourdomain.com -d "*.yourdomain.com" ``` ## 参考资料 1. https://github.com/acmesh-official/acme.sh 2. https://letsencrypt.org/getting-started/ 3. https://dash.cloudflare.com/profile/api-tokens 最后修改:2025 年 02 月 24 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏