如何读取SSL数据?
How to read SSL data?
我找到了一个简洁的 npm 包,它叫做 sslinfo。但是,由于某些原因这不起作用(我得到 Uncaught Error: Module did not self-register
)。有没有其他方法可以通过节点读取站点的 SSL 信息。js/JavaScript/jQuery?
编辑:
对于未来的搜索者!接受的答案是正确的,但如果您想要一些可操作的数据怎么办?这对我有用(目前):
results.toString().match(/subject=\/(.*)/)[1].match(/CN=(.*)/)[1] // Subject Common Name
results.toString().match(/subject=\/(.*)/)[1].match(/O=(.*)\//)[1] // Subject Organization Name
results.toString().match(/issuer=\/(.*)/)[1].match(/CN=(.*)/)[1] // Issuer Common Name
results.toString().match(/issuer=\/(.*)/)[1].match(/O=(.*)\//)[1] // Issuer Organization Name
所有这些正则表达式都很丑陋,但是 sslinfo 没有合作。另外,我将答案代码稍微修改为:
openssl.exec("s_client", {
showcerts: true, connect: url // "url" is what I'm passing to the function
}, function (err, results) {
console.log(
// results.toString().match(/subject=\/(.*)/)[1].match(/CN=(.*)/)[1] // Subject Common Name
// results.toString().match(/subject=\/(.*)/)[1].match(/O=(.*)\//)[1] // Subject Organization Name
// results.toString().match(/issuer=\/(.*)/)[1].match(/CN=(.*)/)[1] // Issuer Common Name
// results.toString().match(/issuer=\/(.*)/)[1].match(/O=(.*)\//)[1] // Issuer Organization Name
);
});
sslinfo is based on openssl-wrapper,这样就可以直接使用了。例如:
var openssl = require('openssl-wrapper');
var url = 'www.google.com:443'
return openssl.exec('s_client', {showcerts: true, connect: url }, function(err, buffer) {
console.log(buffer.toString());
});
相当于命令行上的这个:
openssl s_client -showcerts -connect www.google.com:443
我找到了一个简洁的 npm 包,它叫做 sslinfo。但是,由于某些原因这不起作用(我得到 Uncaught Error: Module did not self-register
)。有没有其他方法可以通过节点读取站点的 SSL 信息。js/JavaScript/jQuery?
编辑:
对于未来的搜索者!接受的答案是正确的,但如果您想要一些可操作的数据怎么办?这对我有用(目前):
results.toString().match(/subject=\/(.*)/)[1].match(/CN=(.*)/)[1] // Subject Common Name
results.toString().match(/subject=\/(.*)/)[1].match(/O=(.*)\//)[1] // Subject Organization Name
results.toString().match(/issuer=\/(.*)/)[1].match(/CN=(.*)/)[1] // Issuer Common Name
results.toString().match(/issuer=\/(.*)/)[1].match(/O=(.*)\//)[1] // Issuer Organization Name
所有这些正则表达式都很丑陋,但是 sslinfo 没有合作。另外,我将答案代码稍微修改为:
openssl.exec("s_client", {
showcerts: true, connect: url // "url" is what I'm passing to the function
}, function (err, results) {
console.log(
// results.toString().match(/subject=\/(.*)/)[1].match(/CN=(.*)/)[1] // Subject Common Name
// results.toString().match(/subject=\/(.*)/)[1].match(/O=(.*)\//)[1] // Subject Organization Name
// results.toString().match(/issuer=\/(.*)/)[1].match(/CN=(.*)/)[1] // Issuer Common Name
// results.toString().match(/issuer=\/(.*)/)[1].match(/O=(.*)\//)[1] // Issuer Organization Name
);
});
sslinfo is based on openssl-wrapper,这样就可以直接使用了。例如:
var openssl = require('openssl-wrapper');
var url = 'www.google.com:443'
return openssl.exec('s_client', {showcerts: true, connect: url }, function(err, buffer) {
console.log(buffer.toString());
});
相当于命令行上的这个:
openssl s_client -showcerts -connect www.google.com:443