Gol*_*den 5 ssl ssl-certificate node.js
在启用了https的Node.js中,我将证书作为.pem文件。
现在,我想从该文件中读取一些数据,以获取有关证书的信息,例如证书的到期日期和通用名称。
如我所见,Node自己的tls模块和ursa之类的模块都不支持此功能。
当然,我可以将其openssl称为子进程并解析其输出流(我认为使用OpenSSL应该可以完成此任务),但是我更喜欢一种解决方案,而不依赖于路径中外部程序的可用性。
我该怎么办?
更新:同时,我找到了pem模块,readCertificateInfo即使使用Node.js 0.8.18,它也成功提供了通用名称(这与它的文档中指出不支持0.7+的文档相反)。不幸的是,它不返回到期日期。
更新2:在内部,pem仅openssl使用子进程调用该命令。当然,我可以自己完成此操作,因此我可以openssl直接从中检索所需的信息。无论如何,如果有人有更好的主意(在这种情况下,这意味着纯JavaScript / Node.js解决方案),我会很高兴的:-)
同时我找到了答案:PEM 格式基本上是使用 Base64 加密的 ASN.1。
因此,您需要先进行Base64解码,然后将结果解析为ASN.1。结果是证书的数据结构,其中包含适当的值。
就是这样 :-)!