我尝试在Amazon EC2,Ubuntu 18服务器上配置SSL访问我的mofficeto bridrge,我按照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
然后我想重新启动mosquito:
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是配置工作所必需的。我检查了示例配置和文档,certfile是一个法律的的必需参数。
我该如何解决这个问题?
2条答案
按热度按时间qxsslcnc1#
我正在Ubuntu服务器上运行Mosquitto。我还遇到Mosquitto在添加SSL证书和配置后无法启动。我通过Certbot工具从Let 's Encrypt获得了独立证书。
**版本信息:**Ubuntu 18.04.5 LTS,Mosquitto 2.0.4.(MQTT v5.0/v3.1.1/v3.1代理程序)和证书机器人1.11.0。
在原始配置和失败配置中,moffesto被配置为使用/etc/letsencrypt...位置中的证书。
我的解决方案是将所有证书文件从/etc/letsencrypt/archive/移动到/etc/mosquito/-文件夹中,并使mosquito配置中的相应证书文件指针指向此位置。
故障排除中与问题最相关的调试可在日志文件/var/log/muctisto/muctisto. log中找到。*
在这种情况下,玩弄 * 所有权并没有任何效果 *。无论文件和证书包含文件夹的所有者是moffesto还是root,证书在/etc/moffesto/certs文件夹中的最终配置都有效。
我还尝试不使用.../live/...的符号链接,并直接使用/etc/letsencrypt/archive/...位置中的文件进行测试,但没有成功。
我没有检查是不是某个文件导致了这个问题,只是将它们全部移走了。之后尝试从其中一个文件.. moffesto/certs进行符号链接,结果发现moffesto无法启动。要运行此服务器设置,我需要**将证书文件保存在... moffesto/certs文件夹”**中。
dwthyt8l2#
更改证书/密钥权限为我解决了这个问题。
sudo chmod 744格式. crt
sudo chmod 644随机密钥
根据此论坛:-https://github.com/owntracks/tools/issues/6