通过TLS确保arduino与mosquitto的连接

时间:2016-06-20 07:36:47

标签: ssl arduino client mqtt mosquitto

我试图通过TLS保护arduino pubsub客户端和mosquitto代理(在公共服务器上运行)之间的连接。

通常(在Windows等上),我可以在给出证书文件的同时发布/订阅像下面一样。 (证书和密钥文件在我的工作目录中)。

mosquitto_pub -h myhost.com -p 8883 -t "/test" -m "your secure message" --cafile ca.crt --cert client.crt --key client.key

mosquitto_sub -h myhost.com -p 8883 -t "/test" --cafile ca.crt --cert client.crt --key client.key

但是有没有办法在arduino中做到这一点?

2 个答案:

答案 0 :(得分:5)

您的pubsub MQTT客户端不支持开箱即用的SSL / TLS。您可以尝试与一些轻量级SSL / TLS库集成。

几乎没有嵌入式SSL库:
https://wolfssl.com/wolfSSL/Products-wolfssl.html
http://www.matrixssl.org/

或者您可以选择Paho MQTT Client - MQTTClient的预构建Arduino端口。它支持MQTT V3.1.1,SSL / TLS,QOS-2支持等,pubsub客户端无法使用。

答案 1 :(得分:1)

不要认为正常的arduino板有加密,至少不是我见过的。但是有一些解决方法,要么你使用另一个没有加密的代理(连接到arduino),然后在另一端使用加密(连接到公共代理)。

另一种选择是使用在linux上运行的板,然后从arduino代码调用mosquitto命令。以下是英特尔爱迪生董事会的一个示例:https://software.intel.com/en-us/blogs/2015/04/06/using-edison-securely-connect-iot-sensor-to-the-internet-with-mqtt