[ 
https://issues.apache.org/jira/browse/KAFKA-19556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18013566#comment-18013566
 ] 

oshione gabriel esiemokhai commented on KAFKA-19556:
----------------------------------------------------

if you disable sni how then can you locate different host names in the same web 
server ?

> [Connect] Provide a configuration to disable SNI required and SNI host 
> checking for the REST API
> ------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-19556
>                 URL: https://issues.apache.org/jira/browse/KAFKA-19556
>             Project: Kafka
>          Issue Type: Bug
>          Components: connect
>    Affects Versions: 4.0.0
>            Reporter: Tamas Kornai
>            Priority: Major
>
> h3. Summary
> The upgrade to Jetty 12 in Kafka 4.0 enables a strict SNI host check by 
> default for the Connect REST API. This change breaks HTTPS request forwarding 
> between Connect workers when they connect via IP address, causing requests to 
> fail with a 400: Invalid SNI error.
> h3. The Problem
> Prior to Kafka 4.0, the Jetty server used for the Connect REST API did not 
> enforce a strict match between the TLS SNI hostname and the HTTP Host header.
> With the upgrade to Jetty 12, this check is now enabled by default at the 
> HTTP level. This causes legitimate HTTPS requests to fail in environments 
> where the client connects using an IP address or a hostname that is not 
> listed in the server's TLS certificate.
> This results in the following error:
> {code:java}
> org.eclipse.jetty.http.BadMessageException: 400: Invalid SNI
> {code}
> h3. Impacted Use Case: Inter-Node Request Forwarding
> This change specifically breaks the request forwarding mechanism between 
> Connect workers in a common deployment scenario:
>  # A follower Connect instance needs to forward a REST request to the leader.
>  # The follower connects directly to the leader's IP address over HTTPS.
>  # Security is handled by mTLS certificates, often managed by a custom 
> certificate provider.
> This setup worked flawlessly before Kafka 4.0. Now, because the follower 
> connects via IP, the SNI check fails, and the forwarding mechanism is broken.
> h3. Proposed Solution
> This behavior cannot be disabled through any existing Kafka Connect 
> configuration. To restore the previous functionality, a 
> SecureRequestCustomizer must be programmatically configured in 
> RestServer.java to disable the SNI required and the SNI host check flags. 
> This should be driven by a configuration value that allows disabling these 
> SNI related settings.
> {code:java}
> // In RestServer.java, when building the HTTPS connector
> SecureRequestCustomizer customizer = new SecureRequestCustomizer();
> customizer.setSniRequired(false);
> customizer.setSniHostCheck(false);
> HttpConfiguration https = new HttpConfiguration();
> https.addCustomizer(customizer);
> connector = new ServerConnector(jettyServer, ssl, new 
> HttpConnectionFactory(https)); {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to