Как настроить Apache httpcore5 java HttpAsyncServer для использования TLS на своем порту прослушивания? - PullRequest
0 голосов
/ 27 июня 2018

При использовании Java-библиотеки apache httpcore5 для реализации HTTP-сервера я не могу найти подходящую идиому для настройки сокета для использования TLS.

Под старой версией httpcore 4.x я мог

KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(keystoreStream, keystorePassword.toCharArray());

KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keyStore, keyPassword.toCharArray());

SSLContext sc = SSLContext.getInstance("TLSv1.2");
sc. init(kmf.getKeyManagers(), null, new SecureRandom());
ServerSocket sSock = sc.getServerSocketFactory().createServerSocket(port);

и затем принимать соединения от этого сокета сервера и bind() этих сокетов до DefaultHttpServerConnection и handleRequest() в цикле.

Я еще не нашел пример того, как написать сервер с поддержкой TLS с использованием инфраструктуры httpcore5.

1 Ответ

0 голосов
/ 27 июня 2018

После некоторых поисков я нашел H2ServerBootstrap.setTlsStrategy() и использовал его так:

SSLContext ctx = buildAppSSLContext();
bootstrap.setTlsStrategy(new BasicServerTlsStrategy(ctx, new FixedPortStrategy(new int[]{port})));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...