2014-02-25 43 views
1

使用HTTPS请求,我尝试使用下面的文档指南连接到后端服务器: http://nodejs.org/api/https.html#https_https_request_options_callback的NodeJS,使HTTPS请求到后端服务器

function getHttpsReq (request, response) 
    { 
     var options = { 
      hostname: 'encrypted.google.com', 
      port: 443, 
      path: '/', 
      rejectUnauthorized: false, 
      strictSSL: false, 
      agent: false, 
      method: 'GET' 
     } 

     https.request(options, function(res) { 
      console.log("statusCode: ", res.statusCode); 
      console.log("headers: ", res.headers); 
      var data = ''; 
      res.on('data', function(d) { 
       process.stdout.write(d); 
       data += data + d; 
      }); 
      res.on('end', function() { 
       console.log("Done"); 
       response.end(data); 
      }); 
     }); 
    } 

但是,当我想这一点,它抛出以下错误:

Error: 140735290610048:error:0607907F:digital envelope routines:EVP_PKEY_get1_RSA:expecting an rsa key:../deps/openssl/openssl/crypto/evp/p_lib.c:288:

$ node --version 
    v0.8.15 

请让我知道什么,我需要做一些额外的?

+0

你是否尝试过使用这些东西的请求? https://www.npmjs.org/package/request – Zlatko

回答

0

您需要的是您的域的证书。

这可以使用下面的代码添加。

key: fs.readFileSync('/etc/apache2/ssl/domain.key'), 
cert: fs.readFileSync('/etc/apache2/ssl/domain.crt') 

到您的选项。

可以使用受信任的权威机构获取证书,也可以使用自签名证书。但是,如果自签名证书未被添加到客户端机器中的可信证书中,则会在客户端产生错误。

+0

我试图通过创建自签名证书来从nodejs服务器与后端服务器进行通信,因此这里的nodejs web服务器是客户端。但即使设置了“process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0”,我仍面临同样的问题。同样的问题。 –

相关问题