
ACME 是 “Automatic Certificate Management Environment”(自动证书管理环境)的缩写,ACME 协议由 Internet 工程任务组(IETF)定义,并由 Let's Encrypt 等证书颁发机构广泛采用。ACME 是一种用于自动化管理和获取 SSL/TLS 证书的协议。ACME 提供了一种标准化的方式,使其能够自动请求、验证和获取证书,而无需人工干预。完成标准化获取证书流程需要 ACME 客户端与 ACME 服务器端进行通信。常见的 ACME 客户端有 acme.sh、certbot 等,而今天我们要介绍的正是 acme.sh。
acme.sh 是一个由 acmesh-official 在 GitHub 上维护的开源项目,拥有超过 39.4k Star。该项目的主要作用是提供一个纯 Shell 脚本实现的 ACME 协议客户端,用于自动化获取和更新 SSL/TLS 证书。支持 Windows、GNU/Linux、FreeBSD、Solaris、macOS 等操作系统。免费的 Let's Encrypt 证书,确保网站的安全性和 HTTPS 支持。
GitHub: GitHub - acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocol
1. 申请证书
1).客户端初始化(首次使用)
a).下载客户端
curl https://get.acme.sh | sh -s email=415988870@qq.com
如果失败,可手动下载压缩包安装:
https://codeload.github.com/acmesh-official/acme.sh/tar.gz/refs/heads/master
tar -zxvf acme.sh-master.tar.gz
cd acme.sh-master
sudo acme.sh install -m xxxx@qq.com
b).注册 ACME 账户
-
使用 Let's Encrypt:
acme.sh --register-account -m 415988870@qq.com
-
使用 ZeroSSL:
acme.sh --set-default-ca --server zerossl acme.sh --register-account -m 415988870@qq.com
c).自动验证(选配,申请 OV/EV 证书请跳过)
ACME 客户端提供 DNS 插件,通过域名解析服务商的密钥授权自动验证域名,使用插件前请配置环境变量。
echo "export Ali_Key="123"" >> /etc/profile
echo "export Ali_Secret="123"" >> /etc/profile && source /etc/profile
2.申请部署证书
a).申请证书(泛域名)
acme.sh --issue --dns dns_ali -d *.peos.cn -d peos.cn --server letsencrypt
#acme.sh --issue --dns dns_ali -d *.peos.cn -d peos.cn
b).部署证书
acme.sh --install-cert -d peos.cn --fullchain-file /www/server/panel/vhost/cert/blog.peos.cn/fullchain.pem --key-file /www/server/panel/vhost/cert/blog.peos.cn/privkey.pem --reloadcmd "nginx -s reload"
或者:
acme.sh --install-cert -d 1bangong.com --fullchain-file /usr/local/nginx/conf/ssl/1bangong.com.pem --key-file /usr/local/nginx/conf/ssl/1bangong.com.key --reloadcmd "nginx -s reload"
注意:安装证书,不能用*.xxx.com, 因为*.xx.com_ecc下面没有 fullchain.cer 。只能用 xxx.com_ecc下面的。
c. 确认开启自动续期
完成以上步骤,您已实现了证书的自动更新和安装部署!!!可通过以下命令查看自动续期任务。
crontab -l
0 0 * * * /root/.acme.sh/acme.sh --cron --home "/root/.acme.sh" > /dev/null
查看已安装列表:
[root@aliyun ~]# acme.sh --list
Main_Domain KeyLength SAN_Domains CA Created Renew
*.1bangong.com "ec-256" 1bangong.com ZeroSSL.com
1bangong.com "ec-256" *.1bangong.com ZeroSSL.com 2025-02-06T09:23:48Z 2025-04-06T09:23:48Z
另外 ,如果你使用caddy代替Nginx。不会有证书问题~caddy全自动申请证书并自动更新~
查看详情:SSL 证书免费,自动续期的web服务器Caddy | Bruce's Blog
============ 欢迎各位老板打赏~ ===========


与本文相关的文章
- · 单台服务器应用不中断服务热部署滚动更新方案
- · linux开启swap
- · Docker 镜像加速列表(20250216已更新)
- · SSL 证书免费,自动续期的web服务器Caddy
- · 解决docker push 到私有registry时,报unknown blob错
- · Amazon Linux 2023 安装Docker和Docker Compose
- · nginx http转https, 不带www转带www
- · docker定时任务Mysql脚本
- · 解决Linux实例磁盘空间满问题
- · failed to fetch metadata: fork/exec /home/appuser/.docker/cli-plugins/docker-buildx: exec format error
- · Docker登录login报错Error saving credentials
- · ELK/EFK中ES使用IK分词器的方式步骤