假如用户使用Let's Encrypt自动续费步骤,因为这是最常见且免费的,而且自动续期工具也比较成熟。那么,我应该先想到Certbot这个工具。Certbot可以自动化申请和续期证书,用户可能需要安装并配置它。配置SSL证书的自动续期通常需要结合证书颁发机构(CA)的工具和系统的定时任务(如cron)。下面是基于 Let's Encrypt(最常用的免费证书)的通用步骤,其他商业证书也可能需要类似工具(如 acme.sh)。

步骤 1:安装 Certbot(Let's Encrypt 官方工具)

bash

复制

Ubuntu/Debian

sudo apt update

sudo apt install certbot

CentOS/RHEL

sudo yum install epel-release

sudo yum install certbot

步骤 2:初次获取证书(若未申请过证书)

假设使用 Webroot 验证(需确保域名已指向服务器):

bash

复制

sudo certbot certonly --webroot -w /var/www/html -d example.com --email your@email.com --agree-tos

w: Web 根目录(需匹配网站配置的根目录)。

d: 域名(可多个,如 -d example.com -d www.example.com)。

email: 接收续期通知的邮箱。

步骤 3:配置自动续期

Certbot 默认会创建自动续期的定时任务,但需确认:

1.检查定时任务:

bash

复制

sudo systemctl list-timers | grep certbot

或查看 cron 任务:

bash

复制

sudo cat /etc/cron.d/certbot

2. 手动测试续期命令:

bash

复制

sudo certbot renew --dry-run

成功输出 The dry run was successful 表示配置正确。

步骤 4:续期后自动重启服务(可选)

证书续期后,需重启 Web 服务器加载新证书。通过 --post-hook 或 --deploy-hook 实现:

bash

复制

编辑 Certbot 的续期配置文件

sudo vim /etc/letsencrypt/cli.ini

添加以下内容(以 Nginx 为例):

ini

复制

deploy-hook = systemctl reload nginx

或直接在续期命令中添加:

bash

复制

sudo certbot renew --post-hook "systemctl reload nginx"

步骤 5:其他验证方式(如 DNS 验证)

若使用 DNS 验证(适用于无法开放 80/443 端口的场景),推荐使用 acme.sh:

bash

复制

安装 acme.sh

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

source ~/.bashrc

配置 DNS API 密钥(以 Cloudflare 为例)

export CF_Key="your_cloudflare_api_key"

export CF_Email="your@email.com"

申请证书

acme.sh 

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

安装证书到指定目录

acme.sh --install-cert 

d example.com \

key-file /etc/nginx/ssl/example.com.key 

fullchain-file /etc/nginx/ssl/example.com.crt 

reloadcmd "systemctl reload nginx"

自动续期已内置,无需额外配置

关键注意事项

1. 日志与调试:

Let's Encrypt 日志路径:/var/log/letsencrypt/letsencrypt.log。

使用 certbot renew --force-renewal 强制手动续期。

2. 证书路径:

Let's Encrypt 证书默认存储在 /etc/letsencrypt/live/域名/。

3. 安全性:

保护私钥文件(如 .key)的权限为 600。

若使用 DNS 验证,确保 API 密钥安全存储。

上面就是Let`s Encrypt自动续费步骤,Let's Encrypt + Certbot:适合大多数 Web 服务器,自动化程度高。

acme.sh:灵活支持多 CA 和 DNS 验证,适合复杂场景。

定时任务 + 续期后钩子:确保服务无缝加载新SSL证书