Nb
Study
.com
🔍 请输入搜索关键字

acme.sh 使用步骤

nbstudy 发表于 2025-03-26 16:13:09

acme.sh 是一个开源的纯 Shell 脚本实现的 ACME 客户端,可用于自动化申请、续期和管理 SSL/TLS 证书,以下是使用 acme.sh 的详细步骤:

1. 安装 acme.sh

打开终端,执行以下命令进行安装:

bash 复制代码
curl https://get.acme.sh | sh -s email=your_email@example.com

或者使用 wget

bash 复制代码
wget -O -  https://get.acme.sh | sh -s email=your_email@example.com

上述命令中的 your_email@example.com 要替换成你自己的邮箱地址,此邮箱用于接收证书相关的通知。安装完成后,acme.sh 会自动添加一个 cron 定时任务,以实现证书的自动续期。

2. 选择验证方式

acme.sh 支持多种域名验证方式,常见的有以下几种:

  • HTTP 验证(HTTP-01):适用于可以通过 80 端口访问的 Web 服务器。acme.sh 会在 Web 服务器的特定目录下创建验证文件,Let's Encrypt 服务器会通过 HTTP 请求来验证文件的存在。
  • DNS 验证(DNS-01):适用于各种情况,尤其是无法开放 80 或 443 端口的场景。acme.sh 会在域名的 DNS 记录中添加特定的 TXT 记录,Let's Encrypt 服务器会通过 DNS 查询来验证域名所有权。
  • TLS-ALPN 验证(TLS-ALPN-01):通过 443 端口进行验证,适用于支持 ALPN 扩展的 Web 服务器。

3. 以 DNS 验证为例申请证书

3.1 配置 DNS 提供商的 API 密钥

如果你使用的是腾讯云 DNS,需要设置环境变量:

bash 复制代码
export Tencent_SecretId="your_secret_id"
export Tencent_SecretKey="your_secret_key"

your_secret_idyour_secret_key 替换为你自己的腾讯云 API 密钥。

3.2 申请证书

使用以下命令申请证书:

bash 复制代码
./acme.sh --issue --dns dns_tencent -d example.com -d *.example.com
  • --issue:表示触发证书申请流程。
  • --dns dns_tencent:指定使用腾讯云的 DNS 验证方式。
  • -d example.com:指定要申请证书的主域名。
  • -d *.example.com:指定要申请证书的泛域名(可选)。

4. 以 HTTP 验证为例申请证书

4.1 确保 Web 服务器可访问

确保你的 Web 服务器(如 Nginx、Apache)正在运行,并且可以通过 80 端口访问。

4.2 申请证书

使用以下命令申请证书:

bash 复制代码
./acme.sh --issue -d example.com --webroot /path/to/your/webroot
  • -d example.com:指定要申请证书的域名。
  • --webroot /path/to/your/webroot:指定 Web 服务器的根目录,acme.sh 会在该目录下创建验证文件。

5. 安装证书

申请成功后,需要将证书安装到 Web 服务器上。以 Nginx 为例,执行以下命令:

bash 复制代码
./acme.sh --install-cert -d example.com \
--key-file       /etc/nginx/ssl/example.com.key  \
--fullchain-file /etc/nginx/ssl/example.com.cer \
--reloadcmd     "systemctl reload nginx"
  • --install-cert:表示安装证书。
  • -d example.com:指定要安装证书的域名。
  • --key-file:指定私钥文件的保存路径。
  • --fullchain-file:指定证书链文件的保存路径。
  • --reloadcmd:指定安装完成后重新加载 Web 服务器的命令。

6. 自动续期

acme.sh 会自动添加一个 cron 定时任务,在证书到期前 30 天自动尝试续期。你可以通过以下命令查看 cron 任务:

bash 复制代码
crontab -l

如果需要手动触发续期,可以使用以下命令:

bash 复制代码
./acme.sh --renew -d example.com

7. 卸载 acme.sh

如果你不再需要使用 acme.sh,可以执行以下命令进行卸载:

bash 复制代码
~/.acme.sh/acme.sh --uninstall
rm -rf ~/.acme.sh

上述命令会移除 acme.sh 的安装目录和相关配置。

通过以上步骤,你可以使用 acme.sh 轻松地申请、安装和管理 SSL/TLS 证书。