Read basic info (subject, altnames, expiresAt, issuedAt) from a cert.pem / x509 certificate (tls / ssl / https)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
AJ ONeal a7722dea19 v1.5.1: bugfix increase loop limit to allow for 100+ domains 5 years ago
bin v1.5.0: 💯 parse HTTPS certificate info in a focused, lightweight, zero-dependency library 5 years ago
lib v1.5.1: bugfix increase loop limit to allow for 100+ domains 5 years ago
.gitignore Initial commit 8 years ago
LICENSE v1.5.0: 💯 parse HTTPS certificate info in a focused, lightweight, zero-dependency library 5 years ago
README.md v1.5.0: 💯 parse HTTPS certificate info in a focused, lightweight, zero-dependency library 5 years ago
cert.pem v1.0.0 8 years ago
index.js v1.5.0: 💯 parse HTTPS certificate info in a focused, lightweight, zero-dependency library 5 years ago
package.json v1.5.1: bugfix increase loop limit to allow for 100+ domains 5 years ago
test.js v1.5.0: 💯 parse HTTPS certificate info in a focused, lightweight, zero-dependency library 5 years ago

README.md

cert-info.js

Read basic info from a cert.pem / x509 certificate.

Used for Greenlock.js

Features

| <175 lines of code | 1.7k gzipped | 4.4k minified | 8.8k with comments |

  • Parses x.509 certificate schemas
    • DER/ASN.1
    • PEM (base64-encoded DER)
    • Subject
    • SAN extension (altNames)
    • Issuance Date (notBefore)
    • Expiry Date (notAfter)
  • VanillaJS, Zero Dependencies
    • Node.js
    • Browsers (built, publishing soon)

Install

# bin
npm install --global cert-info

# node.js library
npm install --save cert-info

Usage

CLI

For basic info (subject, altnames, issuedAt, expiresAt):

cert-info /path/to/cert.pem

node.js

'use strict';

var certinfo = require('cert-info');
var cert = fs.readFile('cert.pem', 'ascii', function (err, certstr) {

  // basic info
  console.info(certinfo.info(certstr));

  // if you need to submit a bug report
  console.info(certinfo.debug(certstr));
});

Example output:

{
  "subject": "localhost.example.com",
  "altnames": [
    "localhost.example.com"
  ],
  "issuedAt": 1465516800000,
  "expiresAt": 1499731199000
}

With a few small changes this could also work in the browser (it has no dependencies and all of the non-browser things are on the Enc object).

Legal

cert-info.js | MPL-2.0 | Terms of Use | Privacy Policy