☰
https 证书自动续期教程
2026/10/23 2:12:15 网站建设 项目流程

使用 acme.sh + Porkbun DNS API 自动生成和自动续期

适合场景

当前教程只适合在 Porkbun 网站上面购买的域名,在其他网站购买的域名估计也和这个差不多。

Porkbun 官网:https://porkbun.com/

  • 你使用 Porkbun 的 DNS,并且可以获取 API key(API keys 在 Porkbun 控制台生成)
  • 全自动:生成证书、自动续期、可执行服务重载
  • 不需要 HTTP 验证,只需 DNS API 插入 TXT 记录

步骤概要

1)获取 Porkbun API key 和 secret

  • 登录 Porkbun 控制台 → 账户设置 → API keys
  • 记录 API key 和 Secret
  • 还需要在域名配置那块打开 API 访问控制

2)安装 acme.sh

curlhttps://get.acme.sh|shsource~/.bashrc

acme.sh 会自动安装定时任务检查并续期证书

3)配置 Porkbun API 凭证环境变量

可以将这个配置添加到 /etc/profile 里面:

exportPORKBUN_API_KEY="你的 API_KEY"exportPORKBUN_SECRET_API_KEY="你的 SECRET_KEY"

注意:最新版必须使用api.porkbun.com作为 API 主机名

4)创建证书(DNS-01 验证)

acme.sh--issue--dnsdns_porkbun-dexample.com-d'*.example.com'--keylength2048--serverletsencrypt--days75
  • --dns dns_porkbun表示使用 Porkbun DNS API 自动添加 TXT 记录
  • -d后面可以根据需求添加多个域名或泛域名
  • --days默认是 60 天自动更新证书,当前这个是指定 75 天更新证书(一般免费的证书有效期是 3 个月)

5)安装/部署证书到你的服务

acme.sh --install-cert-dexample.com\--key-file /etc/nginx/ssl/example.com.key\--fullchain-file /etc/nginx/ssl/example.com.crt\--reloadcmd"/root/.acme.sh/reload.sh"
  • --key-file、--fullchain-file这两个的意思是将生成好的证书拷贝到指定的位置
  • --reloadcmd指定证书到期后执行命令或者脚本(例如当前这个就是检查证书到 75 天后执行这个脚本)

证书到期后执行的脚本 reload.sh

#!/bin/bash# 重新加载 nginx 服务nginx-sreload# 其他服务(如果有)# systemctl reload another-service

脚本需要添加执行权限:chmod +x reload.sh

acme.sh 默认会创建 cron 作业,每天检查证书有效期并自动续期,无需单独设置 crontab

自动设置的定时任务

这个是 acme 脚本自动设置的,可自行修改执行时间:

[root@zhaojj ~]# crontab -l470* * *"/root/.acme.sh"/acme.sh--cron--home"/root/.acme.sh">/dev/null

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询