Я настраиваю обратный прокси-сервер для Wildfly, чтобы я мог получить к нему доступ через Jetty. Протокол SSL настроен как на Wildfly, так и на Jetty, и оба используют одно и то же хранилище ключей (размещается в общей папке). Тем не менее, оба работают на разных машинах. Когда я пытаюсь получить доступ к Jetty из браузера через обратный прокси-сервер, я получаю следующее исключение: -
ОШИБКА HTTP: 400
Проблема доступа / реш. Причина:
Хост не соответствует SNI
При дальнейшем расследовании я обнаружил, что во время квитирования TLS SNI выбирает правильный сертификат, но при запросе ресурсов у Jetty заголовок узла содержит имя узла Wildfly (исходный заголовок узла, который был отправлен браузером для обратного прокси-сервера) и узел SNI Jetty не проверила проверку выбранного сертификата, поскольку она не содержит имени хоста Wildfly в DNS-именах сертификатов.
Обратные настройки прокси приведены ниже: -
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<location name="/solr" handler="solrproxy">
</location>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
<reverse-proxy name="solrproxy">
<host name="jetty_host" outbound-socket-binding="jettyFeed" scheme="https" path="/solr" instance-id="jettyRedirect" security-realm="SslRealm"/>
</reverse-proxy>
<outbound-socket-binding name="jettyFeed">
<remote-destination host="jetty_host" port="jetty_port"/>
</outbound-socket-binding>
Что может быть возможным решением этой проблемы?
Примечание. Я не могу переписать заголовок узла через обратный прокси-сервер, поскольку я использую KeyCloak для проверки подлинности, а также заголовок узла для перенаправления клиентов.