是否可以使用SSL运行独立的Tyrus websocket服务器



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

我得到以下错误:

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

未捕获的安全性错误:未能构造"WebSocket":不安全WebSocket连接可能不是从通过HTTPS。

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

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

有没有一种方法可以让我用SSL运行Tyrus服务器,或者有人知道另一个独立的websocket服务器?

提前感谢

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

所以我把我的逻辑移到了一个由JBoss实例化的web套接字服务器上。

最新更新