从nodejs到https url的API,端口8443抛出错误

时间:2014-04-23 20:10:07

标签: node.js api tomcat npm

我正在尝试使用http / https模块从nodejs到tomcat服务器进行API调用

我有两个api url选项

  1. http://samleapiurl.com/getdata - 这很好用,我得到了反应

    var options = {
        host: 'samleapiurl.com',
        port: 80,
        path: '/getdata'
    };
    
    http.get(options, function(resp) {
        var body = '';
    
        resp.on('data', function(chunk) {
            body += chunk;
        });
        resp.on('end', function() {
            res.end(body);
        });
    }).on('error', function(e) {
        console.log("Got error: " + e.message);
    });
    
  2. https://samleapiurl.com:8443/getdata

    var options = {
        host: 'samleapiurl.com',
        port: 8443,
        path: '/getdata'
    };
    
    https.get(options, function(resp) {
        var body = '';
    
        resp.on('data', function(chunk) {
            body += chunk;
        });
        resp.on('end', function() {
            res.end(body);
        });
    }).on('error', function(e) {
        console.log("Got error: " + e.message);
    });
    
  3. 第二个选项不起作用,它会抛出类似

    的错误
    Got error: 10232:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
    internal error:openssl\ssl\s23_clnt.c:741:
    

    如果尝试在https模式下访问8443,我不确定为什么会出现此错误。 是否有人面临过类似的问题?

1 个答案:

答案 0 :(得分:0)

您可以尝试限制tomcat可以使用哪些密码,如this blog中所述,建议将以下行添加到server.xml的SSL Connector部分:

ciphers="SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"