acme.sh管理 SSL/TLS 证书

acme.sh管理 SSL/TLS 证书

acme.sh 是一个基于 ACME 协议的轻量级工具,用于自动化申请、续签和管理 SSL/TLS 证书(如 Let’s Encrypt 证书)。它使用 Shell 脚本编写,依赖简单,支持多种 DNS 服务和 Web 服务器

操作流程

安装 acme.sh

curl https://get.acme.sh | sh -s email=your_email@example.com

自动安装到 ~/.acme.sh/,并添加定时任务(通过 crontab -l 查看)。

建议使用真实邮箱,用于证书到期提醒。
在这里插入图片描述

签发证书

方式一:HTTP 验证(签发前,请确保域名解析已到服务器

acme.sh --issue -d example.com -d www.example.com -w /var/www/html
# 或
acme.sh --issue -d example.com -d www.example.com --webroot /var/www/html

-w: 指定网站根目录,工具会在目录下创建 .well-known/acme-challenge/ 临时文件验证所有权。

方式二:DNS 验证(无需服务器,适合通配符证书)

acme.sh --issue --dns dns_cf -d example.com -d '*.example.com'

需提前配置 DNS API 凭据(如 Cloudflare、阿里云等)。

例如 Cloudflare:

export CF_Key="your_cloudflare_api_key"
export CF_Email="your_cloudflare_email"

未实操,请自行测试

安装证书

acme.sh --install-cert -d example.com \
  --key-file       /path/to/key.pem  \
  --fullchain-file /path/to/fullchain.pem \
  --reloadcmd     "systemctl reload nginx"

证书文件默认保存在 ~/.acme.sh/example.com/。

–reloadcmd 指定证书更新后重启服务的命令。

自动续签

acme.sh 自动创建定时任务,证书到期前会主动续签(Let’s Encrypt 证书有效期为 90 天)。

手动续签:

acme.sh --renew -d example.com --force

其他实用命令

查看已安装证书:

acme.sh --list

升级 acme.sh:

acme.sh --upgrade

切换 CA 机构(如 ZeroSSL):

acme.sh --set-default-ca --server zerossl

或在配置文件在同目录中的account.conf中配置

DEFAULT_ACME_SERVER='https://acme-v02.api.letsencrypt.org/directory'

常见问题

  • 权限问题:确保证书目录可被 Web 服务器读取(如 Nginx 用户需访问 /path/to/key.pem)。

  • DNS API 配置:参考 acme.sh DNS API 文档 设置环境变量。

  • 通配符证书:必须使用 DNS 验证方式。

实操演示

以下教程与自行编译nginx,mysql 和php组合的环境部署

nginx 环境说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值