我正在尝试将我的React应用程序打开到互联网。该应用程序在localhost上运行良好。但是在我的Apache Web服务器上使用它时将不起作用。我正在运行Ubuntu 16.04。我已经转发了正在使用的端口,并且正在使用我的地址。这是我收到的来自浏览器控制台的错误
在localhost上,此地址工作正常,但是,当我更改要在我的Apache Web服务器上使用的地址和端口时,会出现此错误
使用该地址wss://www.example.io:4488/
出现此错误:
WebSocket connection to 'wss://www.example.io:4488/' failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR
经过一些研究后,我似乎需要使用已启用SSL的端口,但是是否可以启用端口443以外的SSL端口?
然后我尝试使用'ws'并收到此错误,
ws://www.example.io:4488/
无法构造“ WebSocket”:可能无法通过HTTPS加载的页面启动不安全的WebSocket连接。
答案 0 :(得分:0)
“是否可以启用端口443以外的SSL端口?”
是的,与您的操作完全相同(wss://www.example.io:4488)...尽管使用非标准端口时,请确保没有防火墙默默地阻止连接(只需使用telnet进行确认,例如telnet www.example.io 4488
)
“然后我尝试使用'ws'并收到此错误,”
是的,期望的。通过HTTPS交付的网站不能具有不安全的WebSocket。
您的问题的可能原因是服务器SSL证书。当您的浏览器尝试打开websocket时,它将收到服务器SSL证书并尝试进行验证。如果无法验证,将不允许打开套接字。它通常不适用于自签名证书。
相关:
Firefox disconnects websockets connection for a self signed certificate
What is the problem with Websocket and Self-Signed SSL certificate