
dsteinkopf/kong-certbot-agentKong Certbot Agent是一个基于cron的Certbot代理,专为与Kong集成设计,用于自动获取Let's Encrypt SSL证书并将其配置到Kong API网关。该工具通过定时任务(每24小时)自动检查证书状态,更新需要续期的证书,简化Kong的SSL证书管理流程。
适用于需要为Kong API网关管理SSL证书的场景,特别是:
KONG_ENDPOINT:Kong Admin API的HTTP端点(不含路径),例如 [***]EMAIL:与Let's Encrypt证书关联的***地址(用于证书通知和续期提醒)DOMAINS:逗号分隔的域名列表,用于申请证书,例如 example.com,[***]/etc/letsencrypt 目录(存储Let's Encrypt证书和续期数据)/var/log/kong-certbot-agent 目录(存储日志输出)bashdocker run -d \ -e KONG_ENDPOINT="[***]" \ -e EMAIL="***" \ -e DOMAINS="example.com,[***]" \ -v /path/to/letsencrypt:/etc/letsencrypt \ -v /path/to/logs:/var/log/kong-certbot-agent \ phpdockerio/kong-certbot-agent
容器启动后将自动运行更新脚本,每24小时检查并更新需要续期的证书。
为确保Let's Encrypt域名验证正常工作,需在Kong中创建特定API路由,指向该容器的验证路径。
在Kong中创建以下API配置(通过Kong Admin API或配置文件):
json{ "methods": ["GET", "OPTIONS"], "uris": ["/.well-known/acme-challenge"], "upstream_url": "[***]", "strip_uri": true, "name": "certbot", "http_if_terminated": true, "retries": 5, "upstream_connect_timeout": 60000, "upstream_send_timeout": 60000, "upstream_read_timeout": 60000 }
注意:
[***]必须正确指向Kong Certbot Agent容器的网络地址。
Let's Encrypt验证过程中,会通过HTTP请求域名的 /.well-known/acme-challenge 路径。上述Kong配置确保该请求能正确路由到Kong Certbot Agent容器,完成域名所有权验证。
提供Kubernetes环境下的部署示例,包括Service、Deployment和CronJob配置。
可手动运行命令行工具,自定义证书更新调度逻辑,支持以下操作:
bashdocker run -it --rm \ -v /path/to/letsencrypt:/etc/letsencrypt \ phpdockerio/kong-certbot-agent \ ./certbot-agent certs:update \ [***] \ *** \ example.com,[***]
bashdocker run -it --rm \ -v /path/to/letsencrypt:/etc/letsencrypt \ phpdockerio/kong-certbot-agent \ ./certbot-agent certs:update -t \ [***] \ *** \ example.com,[***]
说明:
-t参数指定使用Let's Encrypt测试环境(Staging Environment),避免正式环境因频繁请求触发速率限制。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务