首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过ssl连接到mqtt代理

无法通过ssl连接到mqtt代理
EN

Stack Overflow用户
提问于 2021-01-29 01:50:56
回答 1查看 132关注 0票数 0

我有一个运行mqtt代理和java后端的raspberry。我无法建立从后端到代理的连接,因为我已经实现了ssl。我可以从MacBook上运行的集成开发环境中将后端连接到raspberry上的代理,如下所示:

代码语言:javascript
复制
client = new MqttAsyncClient(
            "ssl://my-domain.com:1883", "backend");

如果后端在我尝试过的覆盆子上:

代码语言:javascript
复制
client = new MqttAsyncClient(
            "ssl://localhost:1883", "backend");


client = new MqttAsyncClient(
            "ssl://127.0.0.1:1883", "backend");

没有成功。我从来没有在这种情况下使用过ssl连接。我是不是疏忽了什么?

错误:

代码语言:javascript
复制
Exception in thread "main" No connection to client (32104)
    at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:31)
    at org.eclipse.paho.client.mqttv3.internal.ClientComms.sendNoWait(ClientComms.java:143)
    at org.eclipse.paho.client.mqttv3.MqttAsyncClient.subscribe(MqttAsyncClient.java:721)
    at org.eclipse.paho.client.mqttv3.MqttAsyncClient.subscribe(MqttAsyncClient.java:681)
    at com.cdh.Service.mqttManager.subscribe(mqttManager.java:243)
    at com.cdh.main.main(main.java:14)

编辑:

我将端口更改为8883。如果我在另一台设备上运行后端,但如果代理和后端在raspberry上,它就不起作用。我还尝试使用我的证书中的域名。

EN

回答 1

Stack Overflow用户

发布于 2021-01-29 03:45:24

用于连接的主机名需要与代理提供的证书中的CN或SAN条目匹配,否则将无法通过验证。

除非您在证书中包含127.0.0.1localhost,否则客户端将拒绝连接,因为证书不会验证该地址。

附注:您可能应该为TLS的MQTT使用不同的端口,而不是1883,因为这是没有TLS的MQTT的标准端口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65942596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档