【问题标题】:Creating a Secure Websocket (wss) Server in Java在 Java 中创建安全 Websocket (wss) 服务器
【发布时间】:2016-04-07 07:51:32
【问题描述】:

我的主要目标是在安全网站上维护 TLS。我目前在https 网站上运行ws,Chrome 中的“SSL 锁定”显示为红色/损坏,因为我使用的是来自https 网站的未经身份验证的源。我需要保护 WebSocket 以保留 SSL 锁。

我一直在网上搜索有关如何在 Java(服务器)和 JavaScript(客户端)中实现 wss 的示例,但我似乎找不到任何可以使用的东西。我已经看到了一些关于如何创建 SSL 服务器的示例(我确实拥有 TLS/SSL 连接所需的证书),但我不确定如何将其转换为 wss。

如果有人能提供如何在 Java 中使用 wss 的示例,我将不胜感激。

【问题讨论】:

  • 你到底在问什么?如果您使用的证书未链接回客户端平台信任的 CA,则无论您使用什么框架/lib 来实现 WebSocket,您都永远不会在浏览器栏中获得绿色幸福。

标签: java websocket java-websocket


【解决方案1】:

安全的 websocket 可以为 web 服务器使用标准的 SSL 证书。例如,您可以在 Tomcat 中执行此操作,或者在浏览器和 Java 服务器之间使用带有 mod_proxy_wstunnel 的 Apache。

【讨论】:

  • 这似乎是我想进入的方向。你有mod_proxy_wstunnel的资源吗?我是 Apache 新手 =/
  • 您需要查看文档 - httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html - 了解如何开始。我个人会在没有 SSL 的情况下开始,然后为您的 Apache 实例获取真正的 SSL 证书。您将设置浏览器 --> Apache --> Tomcat(或其他服务器)。
  • 我已经查看了文档,但我无法从它们那里得到什么。我在 Amazon EC2 实例中尝试了sudo yum install mod_proxy_wstunnel,但它没有要安装的包。我已经为普通的 HTTPS 设置了 SSL,我也只需要它来申请 WebSockets。据我所知,我需要这个包才能继续,对吧?
  • 所以在稍微挖掘之后,第一个问题是 Amazon EC2(“Amazon Linux AMI 2016.03.0”)随 Apache 2.2 一起提供,而 mod_proxy_wstunnel 是 Apache 2.4 的东西。忘记 Apache 并在 Tomcat 中执行此操作可能更容易——听起来您已经使用自签名证书。 Tomcat 有这方面的文档 (tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html) 也可以提供帮助。否则,您需要迁移到具有 Apache 2.4 的 Ubuntu EC2 AMI。
  • 我可以sudo yum install httpd24 在 EC2 机器上安装 Apache 2.4,然后再安装 mod_proxy_wstunnel,否则会破坏所有配置和 SSL?
猜你喜欢
  • 1970-01-01
  • 2017-09-20
  • 2011-08-25
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 2020-08-16
  • 2015-09-29
  • 2019-11-01
相关资源
最近更新 更多