My HTTP Request node fails with a socket hang-up when calling an internal service that enforces specific TLS versions. Postman works from my machine, but running in Docker cannot establish the handshake. Is this a Node.js TLS stack limitation ?
Describe the problem/error/question
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Yeah this is a Node.js TLS thing, Postman uses its own TLS stack so it’ll behave differently. Add NODE_OPTIONS=--tls-min-v1.0 (or whatever version your service needs) as an env var in your Docker compose and that should sort the handshake out. If the service also uses an internal CA you’ll need NODE_EXTRA_CA_CERTS pointed at the cert file mounted into the container.
Yeah this is almost certainly OpenSSL 3 in the newer Node.js versions that n8n’s Docker image ships with, it dropped support for a bunch of legacy ciphers and TLS versions that Postman still handles fine. Try adding NODE_OPTIONS="--tls-min-v1.0" to your container’s environment variables, or if the service uses really old ciphers NODE_OPTIONS="--tls-cipher-list=DEFAULT@SECLEVEL=0" should get you past the handshake failure.