Evan Shortiss
Evan Shortiss

Reputation: 1658

SSL Error in nodejs

I'm trying to get a webpage via node https.request(). Doing so results in an error getting logged by my code. Using the node request module has the same result:

problem with request: 140398870042432:error:140773F2:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert unexpected message:s23_clnt.c:658:

The following indicates the wrong SSL version is being used, but I cannot find a way to change the version: curl error: "sslv3 alert unexpected message". Using curl from my terminal returns a response as does hitting the URL in my browser (it is a login page). My code is below.

var request = require('request')
request.get("https://icmserver.wit.ie/balance", function(err, res, body) {
    if (err) {
        return console.log(err)
    }
    return body;
});

Does anyone have any idea what might be happening here?

Upvotes: 12

Views: 13703

Answers (3)

Denisix
Denisix

Reputation: 106

In case website uses ECDH curve, for me the issue resolved only by adding this option:

request({ url, agentOptions: {
            ecdhCurve: 'P-521:P-384:P-256',
},(err,res,body) => {

JFYI, May be this will help someone.

Upvotes: 0

Will Glass
Will Glass

Reputation: 4850

We hit the same problem. By default, request uses the https.globalAgent. So we added the code near the top of our script.

var https = require('https');
https.globalAgent.options.secureProtocol = 'SSLv3_method';

All of a sudden everything worked.

Upvotes: 12

SuperShalabi
SuperShalabi

Reputation: 471

Try to use options = { secureProtocol: 'SSLv3_method' } in the request you are making.

Upvotes: 15

Related Questions