我正在尝试在Raspberry Pi 3上使用SSL设置Mosquitto。
我按照本教程进行操作

现在我的mosquitto.conf是: br />
但是当我得到推荐时:

listener 8883
cafile /etc/mosquitto/certs/mosq-ca.crt
certfile /etc/mosquitto/certs/mosq-serv.crt
keyfile /etc/mosquitto/certs/mosq-serv.key


我得到了: >我删除了/etc/mosquitto/conf.d/mosquitto.conf。该文件现在为空。现在默认的mosquitto.conf是:

mosquitto_sub -t "#" -v --cafile /etc/mosquitto/certs/mosq-ca.crt -p 8883


,但我仍然收到


我使用错了(我不会在端口8883上监听)sudo mosquitto -v

Error: connection refused


我的/var/log/mosquitto/mosquitto.log日志:

pid_file /var/run/mosquitto.pid 
persistence true persistence_location /var/lib/mosquitto/ 
log_dest file /var/log/mosquitto/mosquitto.log 
include_dir /etc/mosquitto/conf.d 
listener 8883 
cafile /etc/mosquitto/certs/mosq-ca.crt 
certfile /etc/mosquitto/certs/mosq-serv.crt 
keyfile /etc/mosquitto/certs/mosq-serv.key 


错误已归结为:Error: A TLS error occurred.

评论

为了将来参考,除非明确将其列入白名单,否则我不会使用不信任的自签名证书。相反,我会使用免费的Let's Encrypt证书(例如请参阅pimylifeup.com/raspberry-pi-ssl-lets-encrypt)。

#1 楼

如注释中所建议(现在已通过日志输出进行验证),您的mosquitto.conf文件未使用。

使用-c命令行参数启动代理时,需要指定配置文件。

mosquitto -c /etc/mosquitto/mosquitto.conf


Mosquitto不会默认为/ etc / mosquitto / mosquitto.conf,如果没有传递文件,它将仅在没有SSL的端口1883上侦听。脚本,以确保启动时将配置文件传递给mosquitto。

#2 楼

mosquitto -c /etc/mosquitto/mosquitto.conf


这应该可以工作
看到自己在做什么,我相信您会使用server.crt和server.key来验证登录身份。 mosquitto.conf中的另一行,即

require_certificate,当设置为true时,它将要求传入的客户提供证书