EMQX的ws/wss设定为端口80/443端口时无法连接
1、已经设置好证书,并给emqx足够权限使用80/443端口,防火墙已经关闭,安全策略已经放行这两个端口,并且确认没有其他程序占用端口或者端口冲突。
2、端口扫描工具扫描80/443端口开启,并有监听。
3、MQTTX直接使用IP+端口号(80/443)进行连接能够正常连接。(由此再次确认监听和端口配置没有问题)
4、改变端口号到非80/443以外的任意端口,MQTTX使用域名+端口号进行连接也能够正常连接,并且验证证书是通过的。(由此再次确认wss证书配置正确)
5、但是MQTTX使用域名+端口号(80/443)进行连接时一直无法连接,报错:IP:拒绝连接。其中的IP地址解析正确。
6、使用微信小程序开发工具模拟小程序连接EMQX,使用域名+端口号(非80/443端口)域名连接,连接成功。
7、使用微信小程序开发工具模拟小程序连接EMQX,使用域名+80/443端口域名连接,无法连接。查看报错日志,连接的时候已经自动将80/443的端口号省略掉。推测是连接的时候由于少了端口号导致EMQX拒绝连接。
环境信息
- EMQ X 版本:EMQX Broker4.2.8
- 操作系统及版本:Centos8.2
- 其他:阿里云服务器和本地测试都是一样的情况,系统版本试过centos7.6/8.2,EMQX版本4.1.3/4.2.8都试过,问题都一样。
以上问题可以复现,并且尝试过更换系统版本或者EMQX版本,确认和系统/EMQX版本无关。仅在使用80/443这两个会被默认省略掉端口号的接口的时候会出现。
附上微信小程序调试截图