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 账户
acme.sh --register-account --server https://acme.trustasia.com/v2/DV90/directory --eab-kid _0U4****** --eab-hmac-key 9azu******
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 --server letsencrypt
#acme.sh --issue --dns dns_ali -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"
c. 确认开启自动续期
完成以上步骤,您已实现了证书的自动更新和安装部署!!!可通过以下命令查看自动续期任务。
> crontab -l
0 0 * * * /root/.acme.sh/acme.sh --cron --home "/root/.acme.sh" > /dev/null
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · 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分词器的方式步骤
- · 解决es报错:blocked by: [FORBIDDEN/12/index read-only / allow delete (api) ]
- · filebeat按docker容器名创建不同的索引
- · 定时备份docker中的mysql
- · nginx上传文件超出默认大小限制,提示:413 Request Entity Too Large
- · 使用traefik做为docker网关(负载均衡/滚动更新)