【问题标题】:How to read SSL data?如何读取 SSL 数据?
【发布时间】:2016-02-15 19:26:10
【问题描述】:

我发现了一个简洁的 npm 包,它叫做 sslinfo。但是,由于某种原因,这不起作用(我收到Uncaught Error: Module did not self-register)。有没有其他方法可以通过 node.js/JavaScript/jQuery 读取网站的 SSL 信息?

编辑:

对于未来的搜索者!公认的答案是正确的,但是如果您想要一些可操作的数据怎么办?这对我有用(目前):

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
  );
});

【问题讨论】:

    标签: javascript node.js ssl npm ssl-certificate


    【解决方案1】:

    sslinfo是基于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
    

    【讨论】:

    • 我必须对我的代码做一些额外的事情才能让它工作,但它确实如此!您知道如何从buffer 中获取特定数据吗?我应该只解析buffer.toString(),还是有更快的方法?
    • 是的,您需要解析数据以提取您期望的值。由于这是 sslinfo 库的设计目的,请尝试克隆他们的项目,看看是否可以让它在本地运行。如果没有,您可以提交 Github 问题或提交拉取请求。在重建之前可能值得一试。
    • 酷,我稍后会调查这个。现在,我将接受您的回答并用我自己的回答发表评论,详细说明我是如何获得特定数据的。再次感谢! (:
    猜你喜欢
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 2011-01-26
    相关资源
    最近更新 更多