我正在为Wildfly配置反向代理,以便可以通过它访问Jetty。 SSL在Wildfly和Jetty上均已配置,并且都使用相同的密钥库(放置在共享位置)。但是,两者都在单独的计算机上运行。当我尝试通过反向代理从浏览器访问Jetty时,出现以下异常: HTTP错误:400 访问/ solr时出现问题。原因: 主机与SNI不匹配
在进一步调查中,我发现在TLS握手期间,SNI选择了正确的证书,但是在从Jetty请求资源时,主机标头包含Wildfly的主机名(由浏览器发送给反向代理的原始主机标头)和SNI主机Jetty无法对所选证书进行检查,因为它在证书DNS名称中不包含Wildfly的主机名。
反向代理配置如下:-
<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进行身份验证,并且它也使用主机标头重定向客户端。