【发布时间】:2017-10-11 09:35:33
【问题描述】:
我需要使用 NodeJS 检查给定域是否具有有效的 SSL 证书,因此我使用 https 模块,如下所示:
const https = require('https');
const options = {
host: 'www.some-site.com',
method: 'get',
path: '/'
};
const req = https.request(options, res => {
console.log('Certificate Status: ', res.socket.authorized);
});
req.on('error', error => {
console.error('Error: ', error);
});
req.end();
我一直在针对一些在 Google 透明度报告中列为不安全的网站进行测试:https://transparencyreport.google.com/https/top-sites
部分结果:
-
aliexpress.com-Certificate Status: true正确 -
expired.badssl.com-Certificate Status: false正确
两者都正确。但是,当网站完全不使用 SSL 时,socket.authorized 的值仍然为 true:
-
alibaba.com-Certificate Status: true错了 -
www.bbc.com-Certificate Status: true错了
验证域是否具有有效 SSL 证书的正确方法是什么?
【问题讨论】:
-
域名alibaba.com和bbc.com有关联的ssl证书,点击这里查看..alibaba.com,您可以在这里验证ssl证书状态...... ......sslshopper.com/ssl-checker.html
-
正如 Nithin 指出的那样,证书是正确的。您指出的两个站点在 Web 浏览器中打开时会执行从 HTTPS 到 HTTP 的自动重定向。因此,我假设您认为它们不支持 SSL。
-
你们是对的,感谢您的帮助!
标签: javascript node.js ssl https