使用 CertBot 自动更新 EMQX Broker 证书

使用 CertBot 自动更新 EMQX Broker 证书

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

本文介绍了使用CertBot自动更新EMQX Broker证书的简单项目。首先创建CertBot容器申请主机证书,成功后创建EMQX容器使用该证书。CertBot每12小时检查证书有效期,如果证书文件被修改,EMQX容器将重新启动。文章提供了代码示例和必要的配置步骤。

🔎

延伸解读

证书自动续期机制

CertBot 容器每 12 小时检查一次证书有效期,并在证书文件被修改时触发 EMQX 容器重启。这一机制通过共享卷 certs 实现:CertBot 将新证书写入卷,EMQX 的启动脚本使用 inotifywait 监控证书文件变化,检测到修改后自动重启 EMQX 以加载新证书。

部署前提与配置

部署前需在 .env 文件中设置 DOMAIN 和 EMAIL 变量,分别用于申请证书的域名和联系邮箱。同时,必须确保主机的 80 端口开放,以便 Let's Encrypt 进行域名验证。此外,需为 update-certs-and-setup.sh 脚本添加可执行权限,否则容器可能无法正常启动。

运行与日志检查

使用 docker compose up -d --build 命令构建并启动服务。之后可通过 docker logs --details certbot 查看 CertBot 日志,确认证书申请和续期状态;通过 docker logs --details emqx 查看 EMQX 日志,确认 Broker 是否成功启动。这有助于快速排查证书或服务启动问题。

❓

Q&A

如何使用CertBot自动更新EMQX Broker的证书?

首先创建CertBot容器申请证书,成功后创建EMQX容器使用该证书。CertBot每12小时检查证书有效期,若证书被修改,EMQX容器将重新启动。

在使用CertBot时需要配置哪些环境变量?

需要在.env文件中配置域名和邮箱地址,例如DOMAIN和EMAIL。

如何检查CertBot和EMQX的日志?

可以使用命令docker logs --details certbot查看CertBot的日志,使用docker logs --details emqx查看EMQX的日志。

为什么需要确保80端口开放?

80端口需要开放以便Let’s Encrypt验证域名,确保证书申请成功。

如何构建并运行使用CertBot的项目?

使用命令docker compose up -d --build来构建并运行项目。

CertBot如何监控证书的有效性?

CertBot每12小时检查证书的有效期,并在证书文件被修改时重新启动EMQX容器。

🏷️

标签

➡️

继续阅读