2024-03-31 17:35:56 413 0
ACME.sh 是一个轻量级的开源工具,用于自动化管理和部署 HTTPS 证书。它有如下几个优势:
简单易用: acme.sh 设计简洁,易于安装和配置。它提供了丰富的命令行接口,使得证书的获取、更新和部署变得十分简单,即使是对于不熟悉证书管理的用户也能轻松上手。
自动化: acme.sh 支持自动化证书签发和更新过程,无需手动干预。通过使用定时任务或集成到 CI/CD 流水线中,可以实现证书的自动续期,减少了因证书过期而造成的服务中断或安全漏洞的风险。
支持多种证书颁发机构: acme.sh 支持 Let's Encrypt、ZeroSSL 等多个证书颁发机构,用户可以根据需求选择合适的证书颁发机构,满足不同的使用场景。
灵活性和可定制性: acme.sh 提供了丰富的参数和选项,用户可以根据自己的需求进行定制和配置。无论是证书的存储位置、验证方式还是证书类型,都可以根据实际情况进行灵活设置,满足各种复杂的使用场景。
社区活跃: acme.sh 是一个开源项目,拥有庞大的社区支持和活跃的开发团队。用户可以在 GitHub 上找到详细的文档和示例,也可以通过社区论坛或邮件列表获取帮助和支持,保证了使用 acme.sh 过程中的稳定性和可靠性。
官方中文文档: https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
官网提供了多种方式安装。
大陆安装方法:
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com
1.验证域名
官方提供了多种方式,由于默认脚本会报超时,所以使用letsencrypt模式
2.生成证书
脚本会自动在指定目录生成对应证书
3.定时任务更新
按文档配置即可。
letsencrypt模式脚本:
主要还需要创建目录: /etc/nginx/html/.well-known/acme-challenge
server {
listen 80;
server_name www.ezjsp.com ezjsp.com;
location /.well-known/acme-challenge/{
root /etc/nginx/html/;
allow all;
default_type "text/plain";
}
}
acme.sh --server letsencrypt --issue -d www.ezjsp.com -w /etc/nginx/html
/root/.acme.sh/www.ezjsp.com_ecc/www.ezjsp.com.csr
/root/.acme.sh/www.ezjsp.com_ecc/www.ezjsp.com.key
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name www.ezjsp.com ;
#证书文件名称
ssl_certificate /root/.acme.sh/www.ezjsp.com_ecc/www.ezjsp.com.cer;
#私钥文件名称
ssl_certificate_key /root/.acme.sh/www.ezjsp.com_ecc/www.ezjsp.com.key;
location xxx
}
crontab -e
0 0 1 */2 * /root/.acme.sh/acme.sh --server letsencrypt --issue -d www.ezjsp.com -w /etc/nginx/html > /root/acme.log 2>&1
其他:遇到错误,一般情况下是 /.well-known/acme-challenge/ 配置不争取,可以手动在 /etc/nginx/html/.well-known/acme-challenge 放一个1.txt 在浏览器中 访问 /.well-known/acme-challenge/1.txt试试
https://letsencrypt.org/2024/04/25/guide-to-integrating-ari-into-existing-acme-clients