Nach einigen schmerzhaften Debuggen fanden heraus, dass das Anforderungsobjekt einen Agenten verwendet eine Verbindung zu initiieren und verwendet die vorherige bestehende Verbindung und fordern Sie nicht wieder für Zertifikate. Daher das Verhalten. Um es zu lösen, benutze "agent" als Option und setze es auf false.
Modifizierter Code unten.
var https = require('https');
var schedule = require('node-schedule');
var rule = new schedule.RecurrenceRule();
rule.second = 10;
schedule.scheduleJob(rule, function(){
var options = {
host: 'online.hmrc.gov.uk',
method: 'get',
path: '/',
agent: 'false' // essential to close down previous conncetion pools and make a fresh call.
};
options.agent = new https.Agent(options); // Initialise a new agent with options as its parameters.
var req = https.request(options, function(res) {
// some code
console.log('Expity date is ' + res.socket.getPeerCertificate(true).valid_to);
});
req.end();
});