我使用https library用于nodejs使用以下代码发送https get请求。即使正在测试的服务器的证书已过期,我也会获得有效的200状态。
https.get(options, this.onResponseCallback.bind(this));
选项的价值如下所示。
{
protocol: 'https: ',
slashes: true,
auth: null,
host: 'XXXXXXXX',
port: '443',
hostname: 'XXXXXXXX',
hash: null,
search: 'XXXXXXXX',
query: 'XXXXXXXX',
pathname: '/XXXXXXXX/XXXXXXXX',
path: '/XXXXXXXX/XXXXXXXX?XXXXXXXX',
href: 'https://XXXXXXXX',
headers: {
'User-Agent': 'NodeUptime/3.0(https://github.com/fzaninotto/uptime)'
},
rejectUnauthorized: true
}
如果我在浏览器中点击相同的网址,我会收到以下错误。
如果证书过期,如何让nodejs失败?
答案 0 :(得分:2)
我认为浏览器安全策略比您在节点中可以做的更严格。
您可以通过以下方式访问有关服务器证书的信息:
https.request(options, function(response){
var cert = response.client.pair.cleartext.getPeerCertificate();
});
.valid_to
正是您要找的。
有关TLS的更多信息。