节点-x509
简单 X509 证书解析器 . 这个分叉晚于10提供与Node.js版本的相容性. 原始库似乎不再被支持.
安装
国家预防机制 (建议)数字 :
npm install @elastic.io/x509
从源头建造和测试:
npm install
npm test
使用量
从文件中读取 :
const x509 = require('@elastic.io/x509');
const issuer = x509.getIssuer(__dirname + '/certs/your.crt');
从字符串读取 :
const fs = require('fs');
const x509 = require('@elastic.io/x509');
const issuer = x509.getIssuer(fs.readFileSync('./certs/your.crt').toString());
方法
注释:
cert在其中任何一种方法中,可以是文件名或原始碱基64被编码为PEM字符串.
x509. get 替代名称( T)cert(中文(简体) )
解析证书 x509.parseCert 并返回替代姓名.
const x509 = require('@elastic.io/x509');
const altNames = x509.getAltNames(__dirname + '/certs/nodejitsu.com.crt');
// altNames = [ '*.nodejitsu.com', 'nodejitsu.com' ]
x509. get Issuer () (中文(简体) )cert(中文(简体) )
解析证书 x509.parseCert 并返回发行者.
const x509 = require('@elastic.io/x509');
const issuer = x509.getIssuer(__dirname + '/certs/nodejitsu.com.crt');
// issuer = {
// countryName: 'GB',
// stateOrProvinceName: 'Greater Manchester',
// localityName: 'Salford',
// organizationName: 'COMODO CA Limited',
// commonName: 'COMODO High-Assurance Secure Server CA'
// }
x509. 获取对象( G)cert(中文(简体) )
解析证书 x509.parseCert 并返回主题.
const x509 = require('@elastic.io/x509');
const subject = x509.getSubject(__dirname + '/certs/nodejitsu.com.crt');
// subject = {
// countryName: 'US',
// postalCode: '10010',
// stateOrProvinceName: 'NY',
// localityName: 'New York',
// streetAddress: '902 Broadway, 4th Floor',
// organizationName: 'Nodejitsu',
// organizationalUnitName: 'PremiumSSL Wildcard',
// commonName: '*.nodejitsu.com'
// }
x509.parse 证书( C)cert(中文(简体) )
解析主题,发证人,日期前后有效,以及证书中的其他名称.
const x509 = require('@elastic.io/x509');
const cert = x509.parseCert(__dirname + '/certs/nodejitsu.com.crt');
// cert = {
// subject: {
// countryName: 'US',
// postalCode: '10010',
// stateOrProvinceName: 'NY',
// localityName: 'New York',
// streetAddress: '902 Broadway, 4th Floor',
// organizationName: 'Nodejitsu',
// organizationalUnitName: 'PremiumSSL Wildcard',
// commonName: '*.nodejitsu.com'
// },
// issuer: {
// countryName: 'GB',
// stateOrProvinceName: 'Greater Manchester',
// localityName: 'Salford',
// organizationName: 'COMODO CA Limited',
// commonName: 'COMODO High-Assurance Secure Server CA'
// },
// notBefore: Sun Oct 28 2012 20:00:00 GMT-0400 (EDT),
// notAfter: Wed Nov 26 2014 18:59:59 GMT-0500 (EST),
// altNames: [ '*.nodejitsu.com', 'nodejitsu.com' ],
// signatureAlgorithm: 'sha1WithRSAEncryption',
// fingerPrint: 'E4:7E:24:8E:86:D2:BE:55:C0:4D:41:A1:C2:0E:06:96:56:B9:8E:EC',
// publicKey: {
// algorithm: 'rsaEncryption',
// e: '65537',
// n: '.......'
// }
// }
x509. 验证( i)cert, (中文(简体) ), CABundlePath, 函数( err, 结果){ /./} (中文(简体) )
对一捆ca证书进行基本证书验证.
它接受一个错误的第一回调作为第一个参数. 如果错误无效,则证书有效.
错误消息的返回方式相同 openssl数字 : x509 验证 cert error 字符串
说明: 同现在一样,此函数仅接受作为参数的现有文件的绝对路径.
const x509 = require('@elastic.io/x509');
x509.verify(
__dirname + '/certs/user.com.crt',
__dirname + 'end-user-example.com.chain',
function(err, result) { /*...*/ }
);
实例
检查日期以确定证书是否有效 :
const x509 = require('@elastic.io/x509');
const cert = x509.parseCert('your_cert.crt');
const date = new Date();
if (cert.notBefore > date) {
// Certificate isn't active yet.
}
if (cert.notAfter < date) {
// Certificate has expired.
}
许可证
麻省理工学院