Skip to content

hook init —— 生成 hook 骨架 ​

生成 hook 脚本骨架。hook init 支持以下三种 hook 类型,分别对应证书生命周期的不同阶段:

类型触发时机默认输出文件主要环境变量
presentDCV 域名验证阶段,为每个域名布置验证材料./present.sh(Windows ./present.bat)CERTIMAN_DCV_HOST / FQDN / TYPE / VALUE
cleanupDCV 完成后清理已布置的验证材料(适用于 dns / cname / file / email;dns-persist / dns-proxy 持久记录不建议配置 cleanup,否则验证记录将在每次验证后被删除)./cleanup.sh(Windows ./cleanup.bat)同 present,额外收到 CERTIMAN_DCV_RESULT(success / failure)
deploy证书签发或续期后部署到目标服务并执行 reload./deploy.sh(Windows ./deploy.bat)CERTIMAN_CERT_PATH / KEY_PATH / RENEWED

三种类型的用法相同,只需在命令中指定对应的类型名。生成的骨架均包含:

  • 按类型精简的 CERTIMAN_* 环境变量注释表
  • 解释器声明:macOS / Linux 生成以 #!/bin/sh 开头的 .sh 脚本,Windows 生成以 @echo off 开头的 .bat 脚本
  • 空的业务逻辑主体(待填入具体调用)
  • 退出码约定注释

生成的脚本权限为 0700。三种类型的完整环境变量清单见 Hook 环境变量。

用法 ​

bash
certiman hook init <type> [flags]

参数 ​

位置参数 / flag类型允许值默认说明
<type>stringpresent / cleanup / deployHook 类型,必填
--outstring任意路径按 <type> 派生(见上表)输出路径

示例 ​

bash
# 生成 present hook 骨架到当前目录
certiman hook init present

# 生成 cleanup hook,指定输出路径
certiman hook init cleanup --out ~/.certiman/hooks/dns-cleanup.sh

# 生成 deploy hook
certiman hook init deploy --out ~/.certiman/hooks/nginx-deploy.sh

输出 ​

0成功(示例)
text
✔ 已生成 ./present.sh
i 填写完成后写入配置:dcv.present: ./present.sh

相关命令 ​

  • hook test —— 用模拟数据本地试运行生成的 hook
  • Hook 环境变量 —— 完整环境变量清单
  • 完整示例 —— 基于骨架完成的示例脚本(nginx / apache / systemd / IIS / 腾讯云 / Cloudflare / 阿里云)