我按照本教程进行操作
现在我的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.
#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
时,它将要求传入的客户提供证书
评论
为了将来参考,除非明确将其列入白名单,否则我不会使用不信任的自签名证书。相反,我会使用免费的Let's Encrypt证书(例如请参阅pimylifeup.com/raspberry-pi-ssl-lets-encrypt)。