使用 Docker 向 Lita 机器人添加 SSL 证书

Adding an SSL cert to Lita bot using Docker

我已将我的 Lita 机器人连接到 Diaglogflow agent via the lita-api-ai 插件和(当前)在 Dialogflow 网站上内联编辑的支持 Firebase 的实现脚本。

我想将该 webhook 转换为 ruby 并将其作为处理程序托管在 Lita 本身中,但 Dialogflow 需要 webhook 端点上的 SSL。

我在 CoreOS 上为 Lita 使用标准 docker setup,我想使用 Let's Encrypt 证书。我怎样才能做到这一点?我对 Docker 或像 Lita 这样的 ruby 应用程序的内部结构没有经验(与成熟的 nginx/Apache 设置相反)——我可以在 [=20= 周围放些东西吗] 来处理SSL?我需要修改 Docker 图像本身吗?

解决此问题的最佳方法是安装 Web 服务器(nginx、caddy 等)来处理 SSL 终止。然后它应该将请求代理到 Docker 实例。您可以使用 nginx-proxy with the LetsEncrypt companion 作为基本设置,但您需要更改 Lita systemd 脚本以包含配置和环境变量(例如,VIRTUAL_HOSTexpose)。

nginx-proxy 侦听容器更改以动态更新其代理,但我为 nginx-proxy 和 LetsEncrypt companion 创建了 systemd 服务,以便它们在启动时启动。