【问题标题】:Vert.X SecurityVert.X 安全性
【发布时间】:2015-03-22 20:19:00
【问题描述】:

我计划跨集群和跨 Web 客户端使用 vert.x 事件总线。您能否澄清一下事件总线是否可以安全地交换机密数据?如果我没看错,事件总线使用 JSON 或简单的 vertx 兼容数据类型,文档没有明确提及是否可以在通过事件总线时对其进行加密。如果有例子,请欣赏。

【问题讨论】:

    标签: security vert.x


    【解决方案1】:

    我相信这个问题现在已经解决了。如果您阅读有关最近 3.3.0 版本的博客 - http://vertx.io/blog/vert-x-3-3-0-is-released/ - 会提到以下内容:

    “使用此版本,您可以配置事件总线的 TCP 方面,例如使用 SSL。”

    然后如果你看这里 - https://github.com/eclipse/vert.x/blob/master/src/main/java/examples/EventBusExamples.java - 你可以在 example13 中找到以下代码:

    VertxOptions options = new VertxOptions()
        .setEventBusOptions(new EventBusOptions()
            .setSsl(true)
    

    因此,虽然默认情况下总线的传输可能不会受到保护,但现在应该可以在需要时启用 SSL。

    【讨论】:

      【解决方案2】:

      Vert.x 事件总线目前不支持服务器之间的 SSL。这是一个在某些企业中很受欢迎的功能,但尚未在 Vert.x 2 或 3 中实现 AFAIK。

      但是,关于客户端的加密,如果您指的是事件总线桥,那么它确实可以被加密。事件总线桥接器简单地包装了一个 Web 套接字以在客户端和服务器之间进行通信,因此您可以控制事件总线这方面的配置。在创建事件总线桥之前,只需在 HttpServer 上设置 SSL。在构建网桥时请注意您允许的地址权限。

      更新

      Vert.x 现在支持 SSL。请参阅 rdruss 的回答。

      【讨论】:

      • 我可以在 hazelcast 配置中启用 ssl_enabled = true 吗(在 conf 目录中)?我猜事件总线在内部使用 hazelcast 进行消息传递。
      • 实际上,事件总线使用 Hazelcast 进行服务器之间的通信。它仅使用 Hazelcast 来定位其他服务器并存储有关事件总线处理程序注册的少量状态。在内部,事件总线使用 Vert.x NetSocket 实例在服务器之间发送消息。因此,在 Hazelcast 配置文件中设置 <ssl>true</ssl> 或任何内容只会为 Hazelcast 启用 SSL,而不为 Vert.x 事件总线启用 SSL。
      • 顺便说一句,这是事件总线 SSL 的 Bugzilla 票:bugs.eclipse.org/bugs/show_bug.cgi?id=415424
      • 我认为这是阻止用户将 vert.x 用于生产环境的严重限制之一。希望这至少在下一个版本中可用。
      • 这个答案最近由于新版本发布而过时,请参阅 rdruss 的答案
      猜你喜欢
      • 2014-09-13
      • 2010-09-30
      • 2017-04-29
      • 2011-04-21
      • 2012-10-30
      • 2023-03-12
      • 2010-10-19
      • 2010-11-08
      相关资源
      最近更新 更多