首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从https客户端通过wss连接到emqx mqtt broker

无法从https客户端通过wss连接到emqx mqtt broker
EN

Stack Overflow用户
提问于 2020-03-09 01:03:00
回答 2查看 1.3K关注 0票数 0

我有一个在EC2上运行的emqx mqtt代理,ssl和wss配置如下-

代码语言:javascript
复制
listener.ssl.external = 8883
listener.ssl.external.keyfile = /etc/emqx/certs/key.pem
listener.ssl.external.certfile = /etc/emqx/certs/cert.pem
listener.ssl.external.cacertfile = /etc/emqx/certs/cacert.pem

listener.ws.external = 8083

listener.wss.external = 8084
listener.wss.external.keyfile = /etc/emqx/certs/key.pem
listener.wss.external.certfile = /etc/emqx/certs/cert.pem
listener.wss.external.cacertfile = /etc/emqx/certs/cacert.pem
listener.wss.external.verify = verify_none
listener.wss.external.fail_if_no_peer_cert = false

当我尝试使用不带ssl(ws://IP:8083/mqtt)的emqx仪表板(托管在http上)连接到代理时,它工作得很好,但是当我使用带有ssl(wss://IP:8084/mqtt)的emqx仪表板(托管在https上)时,它不能连接。如何在wss上通过https连接到broker?

编辑:我想要单向身份验证。我将从React Web应用程序和NodeJS应用程序连接到代理。所以,我不想提供来自客户端的证书。我使用的证书是EMQX安装提供的证书。此外,我还使用了EMQx为https ssl提供的客户端证书。如果浏览器在没有任何警告的情况下打开https,它也应该能够连接到websocket。

EN

回答 2

Stack Overflow用户

发布于 2020-03-09 04:19:54

Websocket连接不能像您访问网页时那样显示有关不受信任证书的警告。

这意味着没有办法告诉浏览器信任该连接。如果要使用自签名证书,则需要将它们导入浏览器信任存储区,以便显式信任它们。

另一种选择是使用诸如LetsEncrypt之类的东西来获取浏览器已经信任的实际证书。

票数 1
EN

Stack Overflow用户

发布于 2020-04-15 10:44:57

证书需要由Ca颁发,以便浏览器可以自动验证它。请注意,证书与域相同。

或者证书需要在浏览器中(自签名证书)。

或者您信任验证错误。

使用浏览器打开:

https://localhost:8084/mqtt

将弹出信任错误。在此错误页上,单击信任,然后:

wss://localhost:8084/mqtt

没问题的。

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

https://stackoverflow.com/questions/60589889

复制
相关文章

相似问题

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