如何使用vertx连接http服务器websocket和ssl?
问题描述:
我创建了两个类的服务器和客户端。服务器开始使用SSL如下如何使用vertx连接http服务器websocket和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相关的东西吗?
答
要启用SSL vertx你可以使用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);
我希望这将帮助你:)
+0
谢谢!它工作正常。 – sanghavi7
如果我写.setTrustAll(true)它连接。但那是威胁。所以我如何连接而不信任所有人。 – sanghavi7
将您的证书添加到'TrustOptions'或为您的服务器使用有效的证书http://vertx.io/docs/vertx-core/java/#_client_trust_configuration – tsegismont