-
Notifications
You must be signed in to change notification settings - Fork 25.2k
Support SNI on transport TLS connection #54703
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Pinging @elastic/es-distributed (:Distributed/Network) |
Pinging @elastic/es-security (:Security/Network) |
Hi @astefan. Thanks for the fast reply. To clarify things: I do not want to configure a remote cluster. I try to setup a coordinator only node that connects to the other ones through a k8s ingress that requires SNI. When configuring the nodes in |
@sventschui can you explain why you're setting up nodes that way? Nodes in a cluster are supposed to be part of the same network. Nodes in a cluster also need to be able to bidirectionally establish connections amongst each other. It sounds to me that what you're trying to do (unidirectional connect) would be better accomplished with the remote cluster feature. |
We have a 2 DC setup where we want a HA setup of elasticsearch. When one DC fails there still needs to be a quorum. We have the possibility to (1) use a VM that can run on both sides, but the SLA with the infra provider is up to 24h recovery time or (2) run a coordinator only node on an OpenShift Platform which is hosted in the same 2 DCs. The OpenShift Nodes can connect to the VMs on any Port but traffic to OpenShift is only allowed through an ingress on Port 443 that does SNI based load balancing. The idea is to run the coordinator only node on OpenShift and use Port 443 as the transport port. Do you see a better approach? |
Pinging @elastic/es-security (Team:Security) |
Pinging @elastic/es-distributed (Team:Distributed) |
This isn't even theoretically possible. See these docs for more information.
I don't think we should offer support for proxies between nodes within a cluster (at least not at layer 4 and up where this kind of feature would be needed). This kind of network policy is just unreasonably restrictive, and the solution is to fix the policy rather than to put effort into working around it within Elasticsearch. I could have seen some value in doing this for the transport client (but not now it's deprecated) and we already support SNI for remote clusters, so I think we shouldn't take any action here. |
For the reasons above we do not believe this is something we want to do so I'm closing this. |
Describe the feature:
The transport connection should support SNI when configured to use TLS
Elasticsearch version (
bin/elasticsearch --version
):Plugins installed: default rpm install
JVM version (
java -version
):OS version (
uname -a
if on a Unix-like system): CentOS 7Description of the problem including expected versus actual behavior:
I expect the transport connection to use SNI when connecting to a peer. Currently it does not send any SNI headers
Steps to reproduce:
Can't come up with a simple repro case. I guess the easiest would be to setup a cluster and a haproxy that proxies to the nodes using SNI
Provide logs (if relevant):
n/a
The text was updated successfully, but these errors were encountered: