2017-05-11 1 views
0

나는 다음 node.js 코드를 가지고 인증서와 서버의 다른 세부 사항을 얻는다. 그러나 첫 번째 호출 인 https.get에서만 인증서를 가져옵니다. 연속 호출이 서버에서 인증서를 가져 오지 않습니다.node.js의 https.get 호출에서 인증서 캐싱을 사용하지 않도록 설정하는 방법은 무엇입니까?

var https = require('https'); 
var i = 0; 
test(); 

function test() { 
    var request = https.get("https://google.com", function (result) { 
     console.log(result.statusCode) 
     var cert = result.connection.getPeerCertificate(true); 
     console.log("Certificate is", cert) 
     i++; 
     if (i < 10) 
      test(); 
    }).on('error', function (err) { 
     console.log("error is", err); 
    }) 
} 

그래서 Node.js가받은 서버 인증서를 캐시 할 것입니다.

그렇다면 메모리에있는 인증서를 어떻게 지울 수 있습니까?

아니요. 그렇다면이 문제의 원인은 무엇입니까?

답변

3

기본값 인 https.Agent은 최대 100 개의 TLS 세션을 캐시합니다. 세션 캐시되지 않도록

당신은 당신의 요청에 대해 에이전트를 비활성화 할 수 있습니다

const url = require('url'); 
... 
function test() { 
    let opts = url.parse('https://google.com'); 
    opts.agent = false; 

    var request = https.get(opts, ...); 
}