我有一个在EC2上运行的emqx mqtt代理,ssl和wss配置如下-
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。
发布于 2020-03-09 04:19:54
Websocket连接不能像您访问网页时那样显示有关不受信任证书的警告。
这意味着没有办法告诉浏览器信任该连接。如果要使用自签名证书,则需要将它们导入浏览器信任存储区,以便显式信任它们。
另一种选择是使用诸如LetsEncrypt之类的东西来获取浏览器已经信任的实际证书。
发布于 2020-04-15 10:44:57
证书需要由Ca颁发,以便浏览器可以自动验证它。请注意,证书与域相同。
或者证书需要在浏览器中(自签名证书)。
或者您信任验证错误。
使用浏览器打开:
将弹出信任错误。在此错误页上,单击信任,然后:
wss://localhost:8084/mqtt
没问题的。
https://stackoverflow.com/questions/60589889
复制相似问题