80 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # [cert-info.js](https://git.coolaj86.com/coolaj86/cert-info.js)
 | |
| 
 | |
| Read basic info from a cert.pem / x509 certificate.
 | |
| 
 | |
| Used for [Greenlock.js](https://git.coolaj86.com/coolaj86/greenlock-express.js)
 | |
| 
 | |
| # Features
 | |
| 
 | |
| | <175 lines of code | 1.7k gzipped | 4.4k minified | 8.8k with comments |
 | |
| 
 | |
| * [x] Parses x.509 certificate schemas
 | |
|   * [x] DER/ASN.1
 | |
|   * [x] PEM (base64-encoded DER)
 | |
|   * [x] Subject
 | |
|   * [x] SAN extension (altNames)
 | |
|   * [x] Issuance Date (notBefore)
 | |
|   * [x] Expiry Date (notAfter)
 | |
| * [x] VanillaJS, **Zero Dependencies**
 | |
|   * [x] Node.js
 | |
|   * [ ] Browsers (built, publishing soon)
 | |
| 
 | |
| # Install
 | |
| 
 | |
| ```bash
 | |
| # bin
 | |
| npm install --global cert-info
 | |
| 
 | |
| # node.js library
 | |
| npm install --save cert-info
 | |
| ```
 | |
| 
 | |
| # Usage
 | |
| 
 | |
| ## CLI
 | |
| 
 | |
| For basic info (subject, altnames, issuedAt, expiresAt):
 | |
| 
 | |
| ```bash
 | |
| cert-info /path/to/cert.pem
 | |
| ```
 | |
| 
 | |
| ## node.js
 | |
| 
 | |
| ```javascript
 | |
| '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:
 | |
| 
 | |
| ```javascript
 | |
| {
 | |
|   "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](https://git.coolaj86.com/coolaj86/cert-info.js) |
 | |
| MPL-2.0 |
 | |
| [Terms of Use](https://therootcompany.com/legal/#terms) |
 | |
| [Privacy Policy](https://therootcompany.com/legal/#privacy)
 |