目录

使用 acme.sh 自动化SSL证书管理

# 使用 acme.sh 自动化SSL证书管理

随着网站安全性的重视,SSL/TLS 证书的应用变得越来越普遍。对于拥有大量子域名的网站来说,为每个子域名单独购买和管理证书可能会变得繁琐和昂贵。幸运的是,泛域名证书的出现解决了这个问题。而通过 acme.sh,您可以轻松实现泛域名证书的自动化申请和管理。本文将向您介绍如何使用 acme.sh 来申请泛域名证书。

# 什么是泛域名证书?

泛域名证书(Wildcard SSL Certificate)是一种 SSL/TLS 证书,可以用于保护主域名下的所有子域名。与传统的 SSL 证书不同,泛域名证书可以通过一个证书覆盖所有子域名,而无需为每个子域名单独购买和管理证书。这极大地简化了证书管理的工作,并提高了网站的安全性。

# 使用 acme.sh 申请泛域名证书

acme.sh 是一个开源的 ACME 协议客户端,可以用于自动化获取和管理 SSL/TLS 证书。它提供了简单的命令行接口,可以轻松实现证书的申请和管理。以下是使用 acme.sh 申请泛域名证书的步骤:

# 步骤一:安装 acme.sh

首先,您需要在您的服务器上安装 acme.sh。您可以通过以下命令在 Linux 系统上进行安装:

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

把 acme.sh 安装到你的 home 目录下:

~/.acme.sh/
1

并创建 一个 shell 的 alias, 例如 .bashrc,方便你的使用: alias acme.sh=~/.acme.sh/acme.sh

# 步骤二:申请泛域名证书

# DNS API 模式

这里以腾讯云为例,登录 DNSPod 后台 (opens new window)

  • 点击页面右上角头像、点击 API 密钥 菜单、选择 DNSPod Token
  • 点击 创建密钥 取一个名称如 acme.sh,就能生成一个随机的 IDToken

执行以下命令申请证书:

# Dnspod.cn Domain Api Token
export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"

# 申请证书,执行后参数将保存至 ~/.acme.sh/account.conf 在自动续期时使用。
$ acme.sh --issue --dns dns_dp -d example.com -d *.example.com
1
2
3
4
5
6

# 步骤三:安装证书

证书申请成功后,您可以使用以下命令将证书安装到您的服务器上:

acme.sh --install-cert -d '*.example.com' \
--key-file /path/to/private/key \
--fullchain-file /path/to/fullchain/cert \
--reloadcmd "service nginx reload"
1
2
3
4

在这条命令中,您需要将 /path/to/private/key/path/to/fullchain/cert 替换为您希望存储私钥和证书链的文件路径,并根据您使用的服务器软件修改 --reloadcmd 参数。

# 步骤四:定期更新证书

为了保证证书的有效性,建议定期更新证书。您可以使用 acme.sh 提供的自动更新功能,通过添加一个 Cron 任务来定期执行证书更新操作。

$ crontab -e
# 输入以下任务
0 0 * * * "~/.acme.sh"/acme.sh --cron --home "~/.acme.sh" > /dev/null
1
2
3

# 通知

acme.sh 可以在定时任务执行时发送通知。例如在每天晚上的检查任务运行时,您可能会收到基于 notify-level 和 notify-mode 设置的通知。

# Set notification for iOS Bark

export BARK_API_URL="https://api.day.app/XXXXXXXXXXXXXXXXXXXXXX"
export BARK_SOUND="newmail"
export BARK_GROUP=ACME
acme.sh --set-notify --notify-hook bark
1
2
3
4

# 其他操作

1、查看已签发证书的域名:

$ acme.sh --list
1

2、移除不需要再次签发证书的域名:

$ acme.sh --remove -d example.com
1

3、强制刷新证书

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

4、查看已安装证书信息

$ acme.sh --info -d example.com
# 会输出如下内容:
DOMAIN_CONF=/root/.acme.sh/example.com/example.com.conf
Le_Domain=example.com
Le_Alt=no
Le_Webroot=dns_ali
1
2
3
4
5
6

5、卸载

$ acme.sh --uninstall
1

# 结语

通过 acme.sh,申请和管理泛域名证书变得轻松愉快。泛域名证书可以为您的主域名下的所有子域名提供安全的 HTTPS 连接,保护用户数据的安全性和隐私性。立即使用 acme.sh,为您的网站加密通信,提升安全性!

上次更新: 2024/03/25, 22:55:35
最近更新
01
COSCLI 的使用记录
03-25
02
腾讯云命令行工具 TCCLI
03-25
03
迁移到 Vdoing后一些记录
03-24
更多文章>