如何使用vertx将http服务器websocket与ssl连接?

时间:2017-04-11 10:23:34

标签: ssl openssl vert.x vertx-httpclient

我创建了两个类服务器和客户端。服务器以ssl开头,如下所示

HttpServer server =
  vertx.createHttpServer(new HttpServerOptions().setSsl(true).setKeyStoreOptions(
    new JksOptions().setPath("server-keystore.jks").setPassword("wibble")
  ));

还有一个,即客户

vertx.createHttpClient(new HttpClientOptions().setSsl(true)).getNow(4443, "localhost", "/", resp -> {
      System.out.println("Got response " + resp.statusCode());
      resp.bodyHandler(body -> System.out.println("Got data " + body.toString("ISO-8859-1")));
    });

同时在客户端上运行时我得到"无法创建SSL连接"。有没有办法配置与ssl相关的任何东西?

1 个答案:

答案 0 :(得分:1)

  

要在vertx中启用ssl,您可以使用keystore.jks文件

然后使用以下配置:

HttpServerOptions secureOptions = new HttpServerOptions();
    if (Configuration.SSL_enabled) {
        LOG.debug("Secure Transport Protocol [ SSL/TLS ] has been enabled !!! ");
        secureOptions.setSsl(true)
                .setKeyStoreOptions(new JksOptions().setPath(Configuration.SSL_filename)
                        .setPassword(Configuration.SSL_password))
                .setTrustStoreOptions(new JksOptions().setPath(Configuration.SSL_filename)
                        .setPassword(Configuration.SSL_password))
                .addEnabledSecureTransportProtocol(Constants.TLS_VERSION_1)
                .addEnabledSecureTransportProtocol(Constants.TLS_VERSION_2);

    }

   vertx.createHttpServer(secureOptions).requestHandler(router::accept).listen(Configuration.port);
  

我希望这会对你有所帮助:)