Я разрабатываю обратный прокси-сервер, используя http core nio 4.3.3, и мне нужно подключиться к конечной точке Secure/HTTPS через прокси. Я взял обратный прокси-сервер (асинхронный обратный прокси-сервер HTTP)[1] и добавил поддержку SSL, как показано ниже.
SSLContext clientSSLContext =
SSLUtil.createClientSSLContext(TRUST_STORE_LOCATION,
TRUST_STORE_PASSWORD);
final IOEventDispatch connectingEventDispatch =
new DefaultHttpClientIODispatch(
clientHandler,
clientSSLContext,
ConnectionConfig.DEFAULT);
...
connectingIOReactor.execute(connectingEventDispatch);
Когда я отправляю запрос, я получаю эту ошибку,
java.io.IOException: SSL не поддерживается
Трассировка стека приведена ниже.
[client‹-proxy] 00000001 java.io.IOException: SSL не поддерживается java.io.IOException: SSL не поддерживается в org.apache.http.impl.nio.pool.BasicNIOConnFactory.create(BasicNIOConnFactory.java:159 ) по адресу org.apache.http.impl.nio.pool.BasicNIOConnFactory.create(BasicNIOConnFactory.java:1) по адресу org.apache.http.nio.pool.AbstractNIOConnPool.requestCompleted(AbstractNIOConnPool.java:484) по адресу org.apache. http.nio.pool.AbstractNIOConnPool$InternalSessionRequestCallback.completed(AbstractNIOConnPool.java:770) в org.apache.http.impl.nio.reactor.SessionRequestImpl.completed(SessionRequestImpl.java:127) в org.apache.http.impl. nio.reactor.AbstractIOReactor.processNewChannels(AbstractIOReactor.java:423) в org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:288) в org.apache.http.impl.nio.reactor. BaseIOReactor.execute(BaseIOReactor.java:105) в org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworke rIOReactor.java:586) на java.lang.Thread.run(Thread.java:662)
Я также включил журналы отладки SSL, но все еще не мог понять проблему. Затем я отладил это и обнаружил, что прокси-сервер получил запрос от клиента и падает из-за исключения внутри метода обработки HttpAsyncRequestConsumer. Исключение составляет java.io.IOException: SSL не поддерживается.
Также обратите внимание, что SSLContext отлично работал с обратным прокси-сервером, написанным с использованием транспорта netty.
Любая помощь будет оценена по достоинству.
[1] https://hc.apache.org/httpcomponents-core-ga/examples.html
С уважением, Равиндра.