在Vert.x上将SSL协议限制为TLS 1.2

时间:2015-04-14 18:29:45

标签: ssl vert.x

我想将SSL协议限制为Vert.x 2.1.5上的TLS 1.2作为http服务器和客户端。我使用的是jdk 7.有没有人有过如何做的经验?

1 个答案:

答案 0 :(得分:1)

Oracle称here应通过在SSL引擎上明确设置启用的协议来限制JRE 7上的SSL协议:

sslEngine.setEnabledProtocols(new String[] {"SSLv2Hello", "TLSv1", "TLSv1.1", "TLSv1.2"});

现在查看Vert.x v2.1.5中的TCPSSLHelper.java类。有一个常量包含已启用协议的列表,它用于在SSL引擎上设置启用的协议:

// Make sure SSLv3 is NOT enabled due to POODLE issue 
private static final String[] ENABLED_PROTOCOLS = 
    {"SSLv2Hello", "TLSv1", "TLSv1.1", "TLSv1.2"};

将该值更改为{" TLSv1.2"};限制对TLSv1.2的支持。

快速测试:

  • 在您自己的项目中创建org.vertx.java.core.net.impl包
  • 将TCPSSLHelper复制到您的包并编辑已启用的协议常量
  • 构建并运行。
  • 使用特定协议指令的CURL,并看到该服务器只与TLSv1.2连接。

您的源通常会出现在类路径上的第三方源之前,因此此更改将覆盖Vert.x lib中的类,您只需要限制为TLSv1.2。

理想情况下,这将作为补丁提交回Vert.x,其中协议在命令行上作为属性读取。