落叶的心思的博客

一个记录与折腾的小站

使用 ACME.SH 实现 SSL 证书自动化管理

发布时间:

发布者:

分类:

阅读数:

111

点赞数:

2

阅读时长预计:

4 分钟

前言

什么是 ACME.SH?

ACME(Automatic Certificate Management Environment) 是一种用于自动化管理和获取SSL证书的协议。
ACME.SH 则是常见的ACME客户端之一。
ACME.SH 是一个轻量级 Shell 脚本,支持自动申请和续签证书,兼容多种DNS提供商和Web服务器。
它的优势在于:

  • 可实现证书自动申请、安装和续签;
  • 支持DNS验证、HTTP验证、通配符证书;
  • 可与多种工具和服务集成;
  • 完全免费。

如果你熟悉命令行、喜欢折腾服务器,那么使用 ACME.SH 来管理 SSL 证书是个不错的选择。

如何使用 ACME.SH 管理证书

要用 ACME.SH 实现 SSL 证书自动化,你可以按以下步骤操作:

第一步,需要安装ACME.SH

在服务器上通过以下命令安装ACME.SH:

curl https://get.acme.sh | sh

第二步,配置环境变量

设置环境变量以便ACME.SH识别你的域名:

export DOMAIN="yourdomain.com"

第三步,申请证书

在开始之前,先把默认签发机构切换成 Let’s Encrypt

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

验证当前 CA 已切换成功

acme.sh --show-ca

输出结果应为:

CA: https://acme-v02.api.letsencrypt.org/directory

一般有两种申请方法:

方式一:HTTP 验证、

acme.sh --issue --webroot /path/to/webroot -d $DOMAIN

方式二:DNS 验证(以腾讯云和 Cloudflare 为例)

域名托管在腾讯云,使用的命令如下:

export Tencent_SecretId="your_secret_id"
export Tencent_SecretKey="your_secret_key"

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

域名托管在 Cloudflare,使用的命令如下:

export CF_Email="your-email@example.com"
export CF_Key="your-global-api-key"

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

如果你想把腾讯云和 Cloudflare 的环境变量都永久保存到 root 用户的 .bashrc,可以这样做:

腾讯云

echo 'export Tencent_SecretId="your_secret_id"' >> ~/.bashrc
echo 'export Tencent_SecretKey="your_secret_key"' >> ~/.bashrc

Cloudflare

echo 'export CF_Email="your-email@example.com"' >> ~/.bashrc
echo 'export CF_Key="your-global-api-key"' >> ~/.bashrc

添加完毕后执行:

source ~/.bashrc

第四步,安装证书

将证书安装到Web服务器(例如Nginx):

acme.sh --install-cert -d $DOMAIN \
--key-file /path/to/keyfile \
--fullchain-file /path/to/fullchainfile \
--reloadcmd "service nginx reload"

第五步,实现自动续期

ACME.SH会自动检查证书的到期日期并在必要时进行续期。可通过以下命令手动触发续期测试:

手动测试续期

acme.sh --renew -d $DOMAIN --force

加入 crontab 自动续期

编辑 crontab:

crontab -e

添加以下行:

0 0 * * * /root/.acme.sh/acme.sh --cron --home "/root/.acme.sh" > /dev/null 2>&1

ACME.SH 的适用场景与不足

优点

  • 免费、自动化程度高;
  • 可通过 DNS 验证获取通配符证书;
  • 支持多种 DNS 服务商。

不足

  1. 证书类型有限
    只能申请 DV(域名验证)证书,不支持 OV/EV 等更高等级的证书。
  2. 技术门槛较高
    需要熟悉命令行操作和服务器配置,对新手不太友好。
  3. 安全风险
    私钥保存在本地服务器上,如未妥善管理可能导致泄露;
    无内置监控功能,若续期失败用户可能无法及时发现。

因此,ACME.SH 更适合开发者、系统管理员和技术爱好者使用。

转载声明:

转载此文章请注明出处。

若本文内容侵犯了您的权益,请通过本站下方邮箱与我联系,我会尽快处理,谢谢!

分享到:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注