添加SSL配置后Mosquitto MQTT服务重启失败
Mosquitto MQTT service failed to restart after adding SSL configuration
我正尝试在 Amazon EC2 Ubuntu 18 服务器上配置对我的 mosquitto bridrge 的 SSL 访问。我按照 mosquitto tls docs 中描述的步骤进行操作,最终得到以下文件:
- ca.crt
- ca.key
- ca.srl
- client.crt
- client.csr
- client.key
- server.crt
- server.csr
- server.key
在临时目录中。
然后我复制了三个文件:
sudo cp ca.crt /etc/mosquitto/ca_certificates/
sudo cp server.key /etc/mosquitto/certs/
sudo cp server.crt /etc/mosquitto/certs/
然后我在配置文件中添加了以下部分:
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/certs/server.key
certfile /etc/mosquitto/certs/server.crt
然后我想重启mosquitto:
sudo service mosquitto restart
这不起作用,响应为
> Job for mosquitto.service failed because the control process exited with error code.
> See "systemctl status mosquitto.service" and "journalctl -xe" for details.
我都试过了,只有信息说配置不对。
我尝试注释掉不同的行,下面的结构让服务重新启动:
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/certs/server.key
#certfile /etc/mosquitto/certs/server.crt
不幸的是,证书文件是配置工作所必需的。我检查了示例配置和文档,certfile 是一个合法的必需参数。
我该如何解决这个问题?
我在 运行Ubuntu 服务器上安装 Mosquitto。我 运行 也发现 Mosquitto 在添加 SSL 证书和配置后无法启动。我通过 Certbot 工具从 Let's Encrypt 获得了 standalone 证书。
版本信息:
Ubuntu 18.04.5 LTS,
蚊子 2.0.4。 (MQTT v5.0/v3.1.1/v3.1 代理)和
Certbot 1.11.0.
在原始和失败的配置中,mosquitto 配置为使用 /etc/letsencrypt... 位置中的证书。
我的解决方案是 将所有证书文件从 /etc/letsencrypt/archive/ 移动到 /etc/mosquitto/ 文件夹中,并分别制作 mosquitto 配置中的证书文件指针指向此位置。
在日志文件 /var/log/mosquitto/mosquitto.log 文件中提供了故障排除中问题的最相关调试。*
有关故障排除的更多信息
在这种情况下,玩弄所有权没有任何效果。 /etc/mosquitto/certs 文件夹中证书的最终配置有效,无论文件和证书所在文件夹的所有者是 mosquitto 还是 root。
我也尝试不使用 .../live/... 的符号链接,而是直接使用 /etc/letsencrypt/archive/... 位置中的文件进行测试,但没有用。
我没有检查是否是个别文件导致了问题,只是将它们全部移动了。之后尝试从 ..mosquitto/certs 其中一个文件进行符号链接,只是注意到 mosquitto 将无法启动。对于 运行 的服务器设置,我需要 将证书文件保存在 ...mosquitto/certs 文件夹中。
我正尝试在 Amazon EC2 Ubuntu 18 服务器上配置对我的 mosquitto bridrge 的 SSL 访问。我按照 mosquitto tls docs 中描述的步骤进行操作,最终得到以下文件:
- ca.crt
- ca.key
- ca.srl
- client.crt
- client.csr
- client.key
- server.crt
- server.csr
- server.key
在临时目录中。
然后我复制了三个文件:
sudo cp ca.crt /etc/mosquitto/ca_certificates/
sudo cp server.key /etc/mosquitto/certs/
sudo cp server.crt /etc/mosquitto/certs/
然后我在配置文件中添加了以下部分:
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/certs/server.key
certfile /etc/mosquitto/certs/server.crt
然后我想重启mosquitto:
sudo service mosquitto restart
这不起作用,响应为
> Job for mosquitto.service failed because the control process exited with error code.
> See "systemctl status mosquitto.service" and "journalctl -xe" for details.
我都试过了,只有信息说配置不对。
我尝试注释掉不同的行,下面的结构让服务重新启动:
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
keyfile /etc/mosquitto/certs/server.key
#certfile /etc/mosquitto/certs/server.crt
不幸的是,证书文件是配置工作所必需的。我检查了示例配置和文档,certfile 是一个合法的必需参数。
我该如何解决这个问题?
我在 运行Ubuntu 服务器上安装 Mosquitto。我 运行 也发现 Mosquitto 在添加 SSL 证书和配置后无法启动。我通过 Certbot 工具从 Let's Encrypt 获得了 standalone 证书。
版本信息: Ubuntu 18.04.5 LTS, 蚊子 2.0.4。 (MQTT v5.0/v3.1.1/v3.1 代理)和 Certbot 1.11.0.
在原始和失败的配置中,mosquitto 配置为使用 /etc/letsencrypt... 位置中的证书。
我的解决方案是 将所有证书文件从 /etc/letsencrypt/archive/ 移动到 /etc/mosquitto/ 文件夹中,并分别制作 mosquitto 配置中的证书文件指针指向此位置。
在日志文件 /var/log/mosquitto/mosquitto.log 文件中提供了故障排除中问题的最相关调试。*
有关故障排除的更多信息
在这种情况下,玩弄所有权没有任何效果。 /etc/mosquitto/certs 文件夹中证书的最终配置有效,无论文件和证书所在文件夹的所有者是 mosquitto 还是 root。
我也尝试不使用 .../live/... 的符号链接,而是直接使用 /etc/letsencrypt/archive/... 位置中的文件进行测试,但没有用。
我没有检查是否是个别文件导致了问题,只是将它们全部移动了。之后尝试从 ..mosquitto/certs 其中一个文件进行符号链接,只是注意到 mosquitto 将无法启动。对于 运行 的服务器设置,我需要 将证书文件保存在 ...mosquitto/certs 文件夹中。