-
Notifications
You must be signed in to change notification settings - Fork 15
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
Does Enclaver support mTLS / self-signed certificates? #184
Comments
I don't know if that helps, but I tried running the target Docker image through several ways. enclaver run \
--debug-mode \
--publish 8200:8200 \
--publish 8201:8201 \
vault:enclave docker run \
--rm -it \
--detach \
--cap-add=IPC_LOCK \
--device=/dev/nitro_enclaves \
--publish 8200:8200 \
--publish 8201:8201 \
--name=vault \
vault:enclave I also tried the |
Hey, welcome back! 👋 I'm pretty sure this isn't working because Enclaver only proxies HTTP egress traffic, while raft uses "raw" TCP. You'll need to use something like ncat to proxy the raft traffic over HTTP. So, within each enclave, you'll want to run vault and two instances of ncat - one which listens on 8201 and proxies the traffic over HTTP, and the second, which listens for HTTP-proxied traffic and forwards it to Vault. |
I think you can just run one instance of There's an issue (#69) to support transparent TCP proxy so any TCP communication can work but it hasn't been implemented yet. BTW, we're happy to answer question here but we also have Discord which works a bit better for more interactive discussions. |
Hi, it's me again 👋
I'm spiking running a production-grade Vault cluster in Enclaver.
I'm having issues joining a second node to a cluster, at the very last step where the existing leader node needs to communicate to the new-joining node with mTLS.
The client certificate is self-signed and generated by Vault, see an excerpt from the official documentation:
Unfortunately, this communication fails with the following error message from Vault:
Things I've confirmed:
The IP address is correct.
The nodes can communicate over HTTP on port 8200, since prior to that last step, the new-joining node makes an HTTP call to the existing leader node to submit its desire to join the cluster.
The Enclaver manifest file allows both ingress on port 8201 for the existing leader and egress to the VPC CIDR for the new-joining node:
I tried the same setup by running the "bare" source Docker images and the node-to-node communication works fine, i.e. the second node did complete joining the cluster.
Do you know if there's something in Enclaver that would prevent this from happening, or if maybe there's a way to make this work?
Thanks, please let me know if you need additional information.
The text was updated successfully, but these errors were encountered: