使用tls的java中的eclipsepaho mqtt客户机

lxkprmvk  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(440)

我需要使用eclipse paho在java中创建一个mqtt客户机。
我的mqtt代理站在nginxtcp反向代理后面,该代理启用了tls。因此,我需要将客户端配置为使用tls。
尽管如此,我不想向我的客户机提供证书(我认为我真的不需要,因为我可以连接一个启用tls的nodered mqtt客户机,而这个客户机没有提供任何证书;有人告诉我,.net核心客户端也是如此)。
有没有可能用eclipse paho库做到这一点?我能找到的所有例子都使用证书。

a0x5cqrl

a0x5cqrl1#

是的,你只需要提供 ssl:// 或者 mqtts:// url而不是 tcp:// 或者 mqtt:// e、 g.使用paho java客户端页面上的示例:

String topic        = "MQTT Examples";
String content      = "Message from MqttPublishSample";
int qos             = 2;
String broker       = "tcp://mqtt.eclipse.org:1883";
String clientId     = "JavaSample";
MemoryPersistence persistence = new MemoryPersistence();

你只需要改变一下 broker 字符串到:

String broker       = "ssl://mqtt.eclipse.org:8883";

这假设nginx正在侦听端口8883,并且代理正在使用由公共可信ca签名的证书。
这里的javadoc中也描述了所有这些

相关问题