ssl - 使用 Kubernetes 服务处理 TLS LetsEncrypt 的良好实践

标签 ssl nginx kubernetes google-cloud-platform lets-encrypt

考虑到后端服务“前面”的 Nginx 反向代理处理 TLS LetsEncrypt 证书,这种设置在 Kubernetes 上的良好部署架构是什么?

我的第一个想法是做一个容器,将 Nginx 和我的服务器放在一个容器中作为有状态集。 所有这些有状态集都可以访问安装在 /etc/nginx/certificates 上的卷。 所有这些容器都在运行一个 cron,并被允许更新这些证书。

但是,我认为这不是最好的方法。这种类型的架构是为了拆分,而不是在任何地方运行完全独立的服务。

也许我应该运行一个独立的代理服务来处理证书并重定向到后端服务器部署(ingress + job 用于证书更新)?

如果您使用的是托管服务(例如 GCP HTTPS 负载均衡器),您如何颁发公开信任的证书并续订它?

最佳答案

你想要kube-lego .

kube-lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt

它适用于 GKE+LoadBalancer 以及 nginx-ingress。用法很简单;自动证书请求(包括更新);使用 LetsEncrypt。

README 说 - 可能是开玩笑 - 您需要一个非生产用例。我一直在使用它进行生产,我发现它足够可靠。

(完全披露:我与作者有松散的联系,但没有为产品做广告而付费)

关于ssl - 使用 Kubernetes 服务处理 TLS LetsEncrypt 的良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44474614/

相关文章:

Tomcat:无法创建 HTTPS 站点

NGinx RTMP 直播流文本叠加并推送到多个

dns - nginx 管理本地服务器依赖于传入域名

kubernetes - 为什么 kubelet 启动容器比 docker cli 慢?

java - 为 Eclipse 本身(平台)启用控制台日志记录

python - 如何升级openssl版本并将其链接到python 3.6.5

django - nginx 和 uWSGI 给出 ​​ "504 Gateway timeout"

kubernetes - 监视端点之间的区别?

kubernetes - 为什么 pod yaml 文件中的容器对象具有 "list value"而不是 "map value"

ios - [iOS]如何使用NSURLConnection自定义SSL验证?