内容导读
- acme.sh的介绍
- 我所使用的环境
- acme.sh安装与使用
- 配置NginX
- 相关的文件与资料
1.acme.sh的介绍
acme.sh 是一个开源的 ACME 协议客户端工具,用于自动化申请、更新和部署 SSL/TLS 证书。它支持多种证书颁发机构(CA),包括 Let's Encrypt、ZeroSSL、Buypass、SSL.com 和 Google Public CA。默认情况下,acme.sh 使用 ZeroSSL 作为证书颁发机构。
2.我所使用的环境
阿里云服务器系统为CentOS Stream 8;代理和端口转发使用NginX版本为1.14.1;域名与DNS解析服务为腾讯云
3.acme.sh安装与使用
3.1使用命令安装acme.sh脚本,注意下方的邮箱记得换成自己的。
curl https://get.acme.sh | sh -s email=rxu2003@126.com
3.2更新系统脚本环境使之能够识别acme命令
source ~/.bashrc 如果你使用的是 zsh则使用下面的命令,重新打开终端也是可以的 source ~/.zshrc
3.3(可选项,按自己意愿操作)更换CA的服务商到 Let's Encrypt,acme.sh默认使用的证书颁发机构(CA)是 ZeroSSL个人感觉不好使
acme.sh --set-default-ca --server letsencrypt
3.4去到你的DNS服务商哪里获取相关API权限,我这里是使用的是腾讯云所以要获取SecretId 和SecretKey(与阿里云不一样,下方有相关链接)
登陆腾讯云“控制台”点击左上角的“三个横线”在所有云产品里搜索“访问管理”,并进入
进入后找到“访问密钥”下的“API密钥管理”点击“新建密钥”注意“保存”你的密钥和ID
注意保存SecretId 和SecretKey,因为就出现一次
3.5我们切回终端,设置环境变量,使 acme.sh可以访问这些凭证,下面的命令是没有返回值的
export Tencent_SecretId="<你的 SecretId>" export Tencent_SecretKey="<你的 SecretKey>"
例子:
3.6重载环境变量
source /etc/profile
3.7使用acme.sh 申请证书(注意将git.rongxinyu2003.icu改成你自己的域名)
acme.sh --issue --dns dns_tencent -d git.rongxinyu2003.icu
成功后如下图所示,“Your cert is in”是你证书的保存目录,“Your cert key is in”是你私钥的保存目录(不建议直接使用)
3.8复制ssl证书并设置重起规则(官方建议复制到别的地方保存,以防acme.sh目录的更改)
acme.sh --install-cert -d git.rongxinyu2003.icu \ --key-file /etc/nginx/SSL证书/key.pem \ --fullchain-file /etc/nginx/SSL证书/cert.pem \ --reloadcmd "service nginx force-reload"
请将git.rongxinyu2003.icu替换为你的域名,“/etc/nginx/SSL证书/”替换为存放证书的实际路径,service nginx force-reload替换为你使用的 web 服务重载命令。
3.9等个几分钟,强制执行更新看看能不能自动的申请到SSL证书(注意替换为自己的域名)
acme.sh --renew -d git.rongxinyu2003.icu --force
4.配置NginX
4.1打开nginx的配置文件(正常安装就用下面命令)
vim /etc/nginx/nginx.conf
4.2将上面复制的ssl证书存放目录粘贴到ssl_certificate和ssl_certificate_key中如下图
4.3重起nginx服务
systemctl restart nginx.service
4.4打开你的网站看看是否生效
5.相关的文献与资料
如何使用acme.sh与阿里云DNS自动签发Let’s Encrypt的免费数字证书 - 下一朵云
https证书一键自动续期,帮你解放90天限制 - 程序员博博 - 博客园
云解析 DNS acme.sh 自动解析并申请证书-实践教程-文档中心-腾讯云
dnsapi · acmesh-official/acme.sh Wiki · GitHub(acme.sh如何使用DNS自动化API)
Nginx 配合 acme.sh 申请 ssl 证书并部署和自动续期 – PP's Blog