Hello, 小伙伴们,最近写了一个使用 Let's Encrypt 自动申请、更新 的 resty 模块。
设计:
1. 封装 golang官方包 x/crypto/acme/autocert 通过HTTP接口处理 Let's Encrypt 的证书和 OCSP Stapling 工作,acme, autocert 包把主要工作都搞完了,测试也全面
2. resty 中 ssl_certificate_by_lua 指令中,连接后端 cert server 申请证书,并使用 shared_dict 缓存
3. 80 端口上把 http_01 的 challenge 请求代理到后端 cert server
优点:
1. 逻辑清晰,结构简单
2. 一个 cert server 可以服务大量 openresty 前端,证书在 cert server 端集中存储管理
3. 如果有需要,使用 golang 扩展存储方案(db/redis/mongo/s3/...) 比 lua 方便、快、好调试
项目地址:
https://github.com/jxskiss/ssl-cert-server感兴趣的朋友欢迎试用,顺手给个 star 哈 :-)