Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在node.js的https.get调用中禁用证书缓存?_Javascript_Node.js_Ssl_Https_Ssl Certificate - Fatal编程技术网

Javascript 如何在node.js的https.get调用中禁用证书缓存?

Javascript 如何在node.js的https.get调用中禁用证书缓存?,javascript,node.js,ssl,https,ssl-certificate,Javascript,Node.js,Ssl,Https,Ssl Certificate,我有以下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)

我有以下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);
    })
}
var https=require('https');
var i=0;
test();
功能测试(){
var request=https.get(“https://google.com,函数(结果){
console.log(result.statusCode)
var cert=result.connection.getPeerCertificate(true);
日志(“证书是”,证书)
i++;
如果(i<10)
test();
}).on('error',函数(err){
log(“error is”,err);
})
}
所以我觉得Node.js会缓存收到的服务器证书

如果是这样,那么如何清除内存中的证书呢

如果没有,那么这个问题的原因是什么?

默认缓存(最多)100个TLS会话

您可以为您的请求禁用代理,因此不会缓存会话:

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

  var request = https.get(opts, ...);
}
默认缓存(最多)100个TLS会话

您可以为您的请求禁用代理,因此不会缓存会话:

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

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