2014-02-25 2 views
1

사용하여 HTTPS 요청에 요청하게, 나는 아래 문서 가이드 사용하여 백엔드 서버에 연결을 시도했다 : http://nodejs.org/api/https.html#https_https_request_options_callbacknodejs, 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 웹 서버는 클라이언트입니다. 하지만 "process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;을 설정 한 후에도 동일한 문제에 직면하고 있습니다." 같은 문제. –