Mosquitto websockets ERR_CONNECTION_REFUSED letencrypt
Posted
技术标签:
【中文标题】Mosquitto websockets ERR_CONNECTION_REFUSED letencrypt【英文标题】:Mosquitto websockets ERR_CONNECTION_REFUSED letsencrypt 【发布时间】:2020-08-02 20:24:41 【问题描述】:我有一个带有 mosquitto 经纪人的 VPS 和一个托管在里面的网页。 该网页使用 websockets 在 https 上运行,我们购买了一个 .com 主机来获取letsencrypt证书。在开始时,我尝试使用 www.sslforfree.com 的证书直接指向 myweb.ovh.net 以及连接到此 url 的网页。
在那种情况下,一切都很完美,但我需要一个可以保存很长时间的证书,并让我加密我的东西,这可能是解决方案。 我创建了一个指向 web.com 的 Letsencrypt 证书,并以这种方式将该证书放入我的 mosquitto.conf 中
listener 9001
protocol websockets
certfile /etc/letsencrypt/live/web.com/cert.pem
cafile /etc/letsencrypt/live/web.com/chain.pem
keyfile /etc/letsencrypt/live/web.com/privkey.pem
allow_anonymous false
当我尝试运行我的 mosquitto 时,我在服务器端没有响应,控制台中没有消息,并且我在 Web 控制台“ERR_CONNECTION_REFUSED”中收到错误,似乎证书没有加载到服务器中正确或证书不正确。
使用 sslforfree 的证书一切正常。会不会是文件权限的问题?我完全被这个问题迷失了,我也不知道如何查看证书是否在我的服务器中正确加载。
我的蚊帐是
1596462903: Config loaded from mosquitto2.conf.
1596462903: Opening ipv4 listen socket on port 8884.
1596462903: Opening ipv6 listen socket on port 8884.
1596462903: Opening websockets listen socket on port 9001.
1596462924: New connection from 88.9.162.109 on port 8884.
1596462924: New client connected from 88.9.162.109 as crfEquipo40 (c1, k60, u'crfEquipo40').
1596462924: Sending CONNACK to crfEquipo40 (0, 0)
1596462924: Received SUBSCRIBE from crfEquipo40
1596462924: opi40/cmd/teclado (QoS 0)
1596462924: crfEquipo40 0 opi40/cmd/teclado
1596462924: Sending SUBACK to crfEquipo40
1596462925: Received SUBSCRIBE from crfEquipo40
1596462925: opi40/evt/hora (QoS 0)
1596462925: crfEquipo40 0 opi40/evt/hora
1596462925: Sending SUBACK to crfEquipo40
1596462925: Received SUBSCRIBE from crfEquipo40
1596463066: mosquitto version 1.4.15 terminating
如您所见,端口 9001 正在运行,但没有任何反应,我尝试使用 sslforfree 证书进行相同操作,连接正常,在端口 9001 收到消息,但使用letsencrypt证书没有响应。
在我的 javascript 控制台客户端中,我得到了下一个
还有 chrome 安全面板中的这个
【问题讨论】:
编辑问题以包含 mosquitto 的实际日志输出。还要检查 VPS 上的日期/时间是否正确 更新了问题。日期/时间与我所在的国家/地区相同,似乎是正确的 您没有包含任何实际显示错误的日志 连接被拒绝意味着您尝试连接的端口上没有任何东西在监听,或者有防火墙。 已更新。端口是开放的,因为我可以通过 web.ovh.net 访问服务器。如果我有 ovh 网关服务我没有可用的端口抛出 web.com url??? 【参考方案1】:使用/etc/letsencrypt/live/web.com/fullchain.pem
而不是/etc/letsencrypt/live/web.com/chain.pem
【讨论】:
有时我得到相同的结果而不是 ERR_CERT_COMMON_NAME_INVALID 我得到错误 ERR_CONNECTION_REFUSED 的行为相同,在我的 mosquitto 控制台中没有消息。 ERR_CONNECTION_REFUSED 表示 Mosquito 未运行,未配置为使用您尝试连接的端口,或者防火墙阻止访问该端口。以上是关于Mosquitto websockets ERR_CONNECTION_REFUSED letencrypt的主要内容,如果未能解决你的问题,请参考以下文章
Websockets + TLS 的 Mosquitto 配置
Ubuntu Mosquitto 代理 websocket 不工作
Paho javascript 客户端 + mosquitto Websockets + Tls