2

我有一个运行本地 websocket 服务器的 java web start 应用程序。这个应用程序接收一些数据,对这些数据进行签名,并通过 websocket 连接将签名数据返回给浏览器。我使用 Tyrus 容器作为我的本地 websocket 服务器。最近我发现自己卡住了:浏览器尝试在 ssl 上下文中建立到 ws 的连接,但我的 ws 服务器不支持安全的 websocket 连接。

我收到以下错误:

混合内容:“ https://example.com ”上的页面是通过 HTTPS 加载的,但尝试连接到不安全的 WebSocket 端点“ws://localhost:8025/sign/”。此请求已被阻止;此端点必须在 WSS 上可用。

未捕获的安全错误:无法构造“WebSocket”:可能无法从通过 HTTPS 加载的页面启动不安全的 WebSocket 连接。

换句话说,Tyrus 没有给我这样的东西:

new org.glassfish.tyrus.server.Server.Server("wss", "localhost", 8025, "/sign", null, MyClass.class);

有没有一种方法可以让我使用 SSL 运行 Tyrus Server,或者有人知道另一个自包含的 websocket 服务器吗?

提前致谢

4

1 回答 1

1

我发现 Netty IO ( https://github.com/netty/netty ) 能够以独立的方式提供安全套接字。但是我放弃了,因为我需要在我的 java web start 应用程序中提供一个有效的数字证书 (jks)。这是一个巨大的安全问题,因为任何人都可以反编译 jar 并使用该证书来构建网站或使用我的凭据签署文档。

所以我将我的逻辑移到了由 JBoss 实例化的 Web 套接字服务器上。

于 2016-11-29T14:39:40.960 回答