【问题标题】:WebSocket with SSL带有 SSL 的 WebSocket
【发布时间】:2012-04-02 11:12:58
【问题描述】:

是否可以使用带有 HTTPS 的 WebSockets?

当切换到 HTTPS 时,我的 WebSocket 会返回一个安全错误,并且可以与常规 HTTP 完美配合。

下面是一个sn-p;

socket = new WebSocket("ws://my_www:1235"); 

【问题讨论】:

  • 我的错,我意识到我使用的 AIR 套接字服务器不安全,我必须重写才能使用 flash.net.SecureSocket...

标签: ssl websocket


【解决方案1】:

您不能使用基于 HTTPS 的 WebSockets,但可以使用基于 TLS 的 WebSockets(HTTPS 是基于 TLS 的 HTTP)。只需在 URI 中使用“wss://”即可。

我相信最新版本的 Firefox 不会让您从 HTTPS 页面使用非 TLS WebSockets,但反过来应该不成问题。

【讨论】:

  • 那么,解决方案是什么?我有一个通过 http 运行的 WS 服务器,现在我购买了一个 SSL,并且浏览器不再允许我与 WS 连接。我将 WS 转换为 WSS://,现在它没有与 WebSocket 连接
  • @muaaz 您的 WebSocket 服务器应该在 WSS 模式下运行,并且最好加载与您的 Web 服务器相同的 SSL 证书/密钥,该服务器正在为您尝试连接到 WebSocket 服务器的原始网页提供服务。
  • 谢谢。顺便说一句,我刚刚通过代理(使用 apache)从wss://ws:// 的请求解决了这个问题。因此,我使用wss://ws.domain.com 和 apache 在其上应用代理并将请求重定向到运行 WS 服务器的位置。例如:ws://10.12.23.45:5641/server.php。而且我知道这是一个非常糟糕的解决方案-尽管它对我有用。如果您指导我完成 apache 配置,我将不胜感激。例如:将.cert 等放在哪里。谢谢!
  • @muaaz 抱歉,除了我自己谷歌搜索之外,我不知道 apache 配置。
【解决方案2】:

WebSocket 连接从 HTTP 或 HTTPS 握手开始。当通过 HTTP 访问页面时,可以使用 WS 或 WSS (WebSocket secure: WS over TLS) 。但是,当您的页面通过 HTTPS 加载时,您只能使用 WSS - 浏览器不允许“降级”安全性。

【讨论】:

  • 这就是我所拥有的,但我意识到我使用的 AIR 套接字服务器不安全,我必须重写以使用 flash.net.SecureSocket...
  • Flash 也有其严重的问题...您是在构建 WebSocket 服务器(如果是,为什么),还是在构建应用程序?
  • 我有一个正在运行的 AIR 套接字服务器。
  • 那么如果页面没有加载HTTP怎么选择WSS呢?
【解决方案3】:

1 个额外的警告(除了 kanaka/peter 的回答):如果您使用 WSS,并且浏览器不接受服务器证书,您可能不会得到 任何浏览器呈现的对话框(喜欢它发生在网页上)。这是因为 WebSockets 被视为所谓的“子资源”,证书接受/安全异常/任何对话框都不会为子资源呈现。

【讨论】:

  • 即使它与用于 HTTPS 的证书相同?
  • “浏览器呈现的对话框”是什么意思?喜欢alert()
  • 原生源自浏览器(不是页面)的对话框。比如“这个证书无效,要继续吗?”
  • 那么有没有办法克服这个问题?如果我使用自签名证书,我还能使用 websocket 吗?
【解决方案4】:

为了支持@oberstet 的回答,如果浏览器不信任证书(例如,您收到“此站点不安全,您要继续吗?”)一种解决方案是打开浏览器选项,导航到证书设置并添加主机并将 websocket 服务器作为例外提供给证书提供者。

例如,将“example-wss-domain.org:6001”作为例外添加到“Certificate Provider Ltd”。

在 Firefox 中,这可以通过“about:preferences”和搜索“Certificates”来完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2012-07-02
    • 2016-05-13
    • 2016-03-31
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    相关资源
    最近更新 更多