Java 中使用 TLS 的 Eclipse Paho MQTT 客户端
Eclipse Paho MQTT client in Java using TLS
我需要使用 Eclipse Paho.
在 Java 中创建 MQTT 客户端
我的 MQTT Broker 支持启用了 TLS 的 Nginx TCP 反向代理。因此,我需要配置客户端使用TLS。
尽管如此,我不想向我的客户端提供证书(我认为我真的不需要,因为我可以连接到启用了 TLS 的 NodeRED MQTT 客户端,而这个客户端没有提供任何证书; 同样 - 我被告知 - 使用 .NET Core 客户端)。
是否可以使用 Eclipse Paho 库执行此操作?
我能找到的所有示例都使用了证书。
是的,您只需要提供 ssl://
或 mqtts://
URL 而不是 tcp://
或 mqtt://
例如使用 Paho Java 客户端 page:
上的示例
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,并且代理正在使用由 public 受信任的 CA 签名的证书。
所有这些也在 Javadoc here
中描述
我需要使用 Eclipse Paho.
在 Java 中创建 MQTT 客户端我的 MQTT Broker 支持启用了 TLS 的 Nginx TCP 反向代理。因此,我需要配置客户端使用TLS。
尽管如此,我不想向我的客户端提供证书(我认为我真的不需要,因为我可以连接到启用了 TLS 的 NodeRED MQTT 客户端,而这个客户端没有提供任何证书; 同样 - 我被告知 - 使用 .NET Core 客户端)。
是否可以使用 Eclipse Paho 库执行此操作? 我能找到的所有示例都使用了证书。
是的,您只需要提供 ssl://
或 mqtts://
URL 而不是 tcp://
或 mqtt://
例如使用 Paho Java 客户端 page:
上的示例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,并且代理正在使用由 public 受信任的 CA 签名的证书。
所有这些也在 Javadoc here
中描述