繁体   English   中英

从远程客户端连接到 mosquitto 时,TLS 服务器身份验证失败(但如果我使用相同的证书在本地连接,它可以工作)

[英]TLS server authentication fails when connecting to mosquitto from a remote client (but it works If I connect locally with the same certificate)

我有一个在 raspbian 实例上运行的蚊子代理。 然后我有一个 ubuntu 实例,我试图通过运行以下命令,使用带有 TLS 服务器身份验证的 mosquitto_pub 发布消息:

rr@rrubuntu:~/Documents$ mosquitto_pub -h 192.168.0.13 -p 8883 -t master/sensor -m "TLS test" -d --cafile /home/rr/Documents/ca-master.crt --tls-version tlsv1.2

但这就是我得到的:

Client mosqpub|7154-rrubuntu sending CONNECT
Error: A TLS error occurred.

当我查看 mosquitto 的日志时,我看到了:

raspberry mosquitto[9072]: 1621581631: OpenSSL Error: error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate
raspberry mosquitto[9072]: 1621581631: Socket error on client <unknown>, disconnecting.

我不知道可能导致此问题的原因是什么,因为当我从 raspbian 实例本身连接时。 我没有问题。 这是我运行的命令:

pi@raspberry:~/Documents $ mosquitto_pub -h 192.168.0.13 -p 8883 -t master/sensor -m "TLS test" -d --cafile /home/pi/Documents/ca-master.crt --tls-version tlsv1.2

注意:ca-master.crt(以及代理证书和密钥)是使用 openssl 在 raspbian 实例中创建的,然后我使用 scp 将 ca-master.crt 复制到 ubuntu 实例中。

是的,如果我停用 TLS 身份验证(通过在 mosquitto.conf 上进行必要的更改),我可以毫无问题地从远程实例发布:

rr@rrubuntu:~/Documents$ mosquitto_pub -h 192.168.0.13 -p 8883 -t master/sensor -m "No TLS test" -d
Client mosqpub|7179-rrubuntu sending CONNECT
Client mosqpub|7179-rrubuntu received CONNACK
Client mosqpub|7179-rrubuntu sending PUBLISH (d0, q0, r0, m1, 'master/sensor', ... (11 bytes))
Client mosqpub|7179-rrubuntu sending DISCONNECT

我真的不知道握手失败的原因以及如何解决它。 非常欢迎任何建议。

谢谢!

从我有时遇到的关于 TLS 的问题中猜测,您可能需要禁用主机名验证。 mosquitto_sub 有 --insecure 标志:

--不安全

使用基于证书的加密时,此选项禁用对服务器证书中的服务器主机名的验证。 这在测试初始服务器配置时很有用,但例如,恶意第三方可能通过 DNS 欺骗来冒充您的服务器。 仅在测试中使用此选项 如果您需要在生产环境中使用此选项,则您的设置有问题,使用加密毫无意义。

资料来源: https://mosquitto.org/man/mosquitto_sub-1.html

由于禁用主机名验证不是一个好主意,这里有一篇好文章如何解决这个问题: <localhost> 的证书与任何主题替代名称都不匹配

我设法通过在 Ubuntu 实例中生成证书然后将它们复制到 Raspbian 实例来解决它。 与我最初所做的相反,即在 Raspbian 实例中生成证书,然后将它们复制到 Ubuntu 之一。

由于我忽略的一个原因,直接在 Raspian(使用 OpenSSL)中创建的证书在被另一个操作系统使用时不起作用,但它可以反过来工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM