iex(16)> HTTPoison.post("https://myserver.com/api/v1.1.0/login",'{ "username": "myusername","password": "somepassword,"port": "80"}',[hackney: [ssl: [cacertfile: '/usr/local/share/ca-certificates/extra/RootCA.crt']]])
14:54:26.183 [info] TLS :client: In state :hello received SERVER ALERT: Fatal - Handshake Failure
{:error,
%HTTPoison.Error{
id: nil,
reason: {:tls_alert,
{:handshake_failure,
'TLS client: In state hello received SERVER ALERT: Fatal - Handshake Failure\n '}}
}}
We have a local RootCA.crt file which I have added to the OS and makes it so I can make a request with no problems. I am able to make this request in postman as well as from Python but not in Elixir. Perhaps my syntax is wrong or I don’t understand ssl properly (that’s definitely true!). This server is not accessible to the internet. I can provide more information if necessary. Thanks for any help!
Thanks for the tips everybody. Unfortunately I think the problem lies with the IT department of the company I am working with. There appears to be some problems with their ssl setup. I can only access this api by setting a verify=false flag with the request. Which is ok for now but eventually they need to setup their certificates properly.
I passed the insecure option to hackney and changed the https to http. I know this is not recommended but I need to login and I don’t have access to the SSL settings on the server.