I am working in adding an app to the Pipedream App Store which is running on an old TLS version. When I run a test request to this app, the workflow errors out:
write EPROTO 139667957487360:error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol:…/deps/openssl/openssl/ssl/statem/statem_lib.c:1958:
I checked for axios documentation to see if this could be worked around by changing axios config, and I found that
As a server, axios uses node’s underlying
httpsimplementation judging from the code on GitHub. For node, the answer your question is “whatever your version of node supports”. Practically speaking, recent versions of node support TLS 1.0 through 1.3.
on TLS version support in axios?
so an axios workaround is not an option.
I then found out that
Node.js 12’s default TLS settings are stricter now. The site doesn’t handle TLS v1.2. Node 12 by default need 1.2.
You can change this via a command line flag (–tls-min-v1.0) when running your app.
something like this
node --tls-min-v1.0 app.js
axios SSL error with Node 12 : SSL routines:ssl_choose_client_version:unsupported protocol
I did confirm that the app’s host I am tackling uses an older TLS version, see I checked on this nice service SSL Server Test and the result is that
This server supports TLS 1.0 and TLS 1.1. Grade capped to B. MORE INFO »
My guess is that the underlying node version in Pipedream workflow is set tu use TLS 1.2 as minimum, but the app’s host is using 1.0 or 1.1
Can Pipedream workflow’s node instance be configured on the workflow or step to accept options such as those set by command line, i.e. to change the TLS settings?
My idea is that I get can to communicate with the app’s API if I changed the PD workflow to use a less strictred TLS settings 1.0, or 1.1 instead of 1.2.