首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Firefox上建立Websocket安全连接

无法在Firefox上建立Websocket安全连接
EN

Stack Overflow用户
提问于 2014-05-21 06:07:59
回答 7查看 43.5K关注 0票数 15

我被火狐困住了。我不能让Websocket在上面工作。我使用“旋风”Websocket并通过下面的代码对其进行初始化:

代码语言:javascript
复制
app = Application([(r'/mypath/ws', WSHandler)])
http_server = HTTPServer(app, ssl_options={
                "certfile": "~/certs/websocket.crt",
                "keyfile": "~/certs/websocket.key"
            })
http_server.listen("443")

我在Javascript端初始化它,如下所示:

代码语言:javascript
复制
var WS = new WebSocket("wss://websocket.localhost/mypath/ws");

这段代码在Chrome上运行良好,同时我自己创建了证书,并在HTTPS下运行该页面。但是Firefox一直说:

代码语言:javascript
复制
Firefox can't establish a connection to the server at wss://websocket.localhost/mypath/ws.

我在谷歌上找到了太多的想法,但这些想法对我都没有用。

任何帮助都将不胜感激。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-05-21 14:02:56

我通过ProxyPass解决了我的问题。我用旋风创建了一个非安全的Websocket服务器,并在一个特定的端口上运行它,比如3232:

代码语言:javascript
复制
app = Application([(r'/ws/', WSHandler)])
ws_server = HTTPServer(app)
ws_server.listen("3232")

然后,我在Apache中编写了一个proxypass,并使用mod_proxy_wstunnel:

代码语言:javascript
复制
ProxyPass /ws/ ws://127.0.0.1:3232/ws/
ProxyPassReverse /ws/ ws://127.0.0.1:3232/ws/

我在前端创建Websocket客户端,如下所示:

代码语言:javascript
复制
var WS = new WebSocket("wss://websocket.localhost:81/ws/")

在本例中,我可以使用https在安全连接上创建一个连接,我的端口是81,我的代理程序将任何Websocket请求重定向到本地侦听端口3232。这不是一个确切的解决方案,主要是一个解决办法。但对我来说很好。

票数 2
EN

Stack Overflow用户

发布于 2019-06-01 12:25:38

如果它是一个自签名的证书,浏览器将不会显示对话框接受证书,如果它只在一个websocket中使用。

您必须首先访问请求的url以查看和接受证书警告,然后才能创建安全的websocket。

例如,如果您的websocket url是:

wss://localhost:44300/OpenWebSocket

然后访问:

https://localhost:44300/OpenWebSocket

并接受证书警告。

票数 10
EN

Stack Overflow用户

发布于 2014-05-21 13:55:41

如果它是一个自签名的证书,浏览器将不会显示对话框接受证书,如果它只在一个websocket中使用。您必须首先访问同一服务器上的普通页以查看和接受证书警告,然后才能创建安全的websocket。

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

https://stackoverflow.com/questions/23775215

复制
相关文章

相似问题

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