管理 apisix 里面的证书,支持自动续期,支持通过接口创建单域名、泛域名证书
单域名:优先使用 dns 验证,未配置 dns_api 的情况下使用 apisix 自动创建路由进行文件验证
泛域名:只支持使用 dns 验证
-
域名解析到 apisix 服务器(dsn 验证不需要该步骤)
-
调用服务
http://${apisix-server}/apisix_acme/task_create
创建证书,也可在 apisix 里面手动导入证书 -
每天凌晨会自动检查即将过期且符合格式(单sni)的证书并自动重新申请
参考 config.yml
可以直接使用 tmaize/apisix-acme 镜像,或者本地构建./build.sh build
version: "3"
services:
apisix-acme:
image: tmaize/apisix-acme:2.3.4
restart: always
volumes:
- ./out:/app/out
- ./config.yml:/app/config.yml
environment:
- TZ=Asia/Shanghai
networks:
apisix:
networks:
apisix:
external: true
-
新增、更新证书
/apisix_acme/task_create
domain 必填,serviceList、mail、force,VERIFY-TOKEN 可选
POST {"domain":"example.com","serviceList":[],"mail":"","force":false} HEADER {VERIFY-TOKEN: xxxxxxxxxx}
响应
{ "code": 200, "message": "证书已存在且未过期,跳过操作", "data": { "status": "skip", "domain": "example.com" } }
{ "code": 200, "message": "证书申请中,等待片刻", "data": { "status": "running", "domain": "example.com" } }
{ "code": 200, "message": "任务已提交,等待片刻", "data": { "status": "created", "domain": "example.com" } }
-
查询任务
/apisix_acme/task_status
请求
GET ?domain=example.com
响应
{ "code": 200, "data": { "status": "error", "domain": "example.com", "error": "域名不存在" } }
{ "code": 200, "data": { "status": "running", "domain": "example.com" } }
{ "code": 200, "data": { "status": "success", "domain": "example.com" } }
-
工具页面
/apisix_acme/tool.html