node.js - 如何检查/获取 ssl 证书到期日期

hel*_*tyj 7 ssl node.js tls1.2

我有让我们加密证书包。它包括私钥和certificate.crt

使用 node.js 和 node-forge(不是 openssl),如何获取certificate.crt 的到期日期?

Yur*_*kym 10

您可以使用内置crypto模块:

const { X509Certificate } = require('crypto');

const { validTo } = new X509Certificate(certificate);
Run Code Online (Sandbox Code Playgroud)

此功能在 v15.6 及更高版本中可用。

  • 应该是公认的答案。最好避免导入第 3 方模块并使用内置功能来检查证书有效性。 (4认同)

Bao*_*Hoa 6

您可以使用 x509 模块

var crt_pem = "<certificate in pem format which is content of your certificate.crt>";
const x509 = require('x509');
var crt_obj = x509.parseCert(crt_pem);
console.log(crt_obj.notBefore);
console.log(crt_obj.notAfter);
Run Code Online (Sandbox Code Playgroud)

  • @DominusVilicus 这正是问题所在......证书文件的有效性。 (3认同)

Aw *_*nap 5

您可以使用节点 SSL 检查器

$ npm install ssl-checker --save # npm i -s ssh-checker
Run Code Online (Sandbox Code Playgroud)

在您的代码中:

var sslChecker = require("ssl-checker")
sslChecker('example.com', 'GET', 443).then(result => console.info(result));
Run Code Online (Sandbox Code Playgroud)

响应将如下所示:

{
"valid": true,
"days_remaining" : 90,
"valid_from" : "issue date",
"valid_to" : "expiry date"
}
Run Code Online (Sandbox Code Playgroud)

  • 没有。请阅读OP问题,它不是关于检查域以获得过期日期。它是直接读取证书文件来获取元数据。 (3认同)