@elastic.io/x509

中文文档
1.1.3发布于 2023/09/26MITCommonJS近 30 天下载 4355

简单的 X509 证书解析器

中文使用文档
文档目录10 节
  1. 安装
  2. 使用量
  3. 方法
  4. x509. get 替代名称( T) cert (中文(简体) )
  5. x509. get Issuer () (中文(简体) ) cert (中文(简体) )
  6. x509. 获取对象( G) cert (中文(简体) )
  7. x509.parse 证书( C) cert (中文(简体) )
  8. x509. 验证( i) cert , (中文(简体) ), CABundlePath , 函数( err, 结果){…
  9. 实例
  10. 许可证

节点-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.
}

许可证

麻省理工学院

版本与发布记录

@elastic.io/x509 共发布 3 个版本,首次发布于 2023/07/17;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.3latest2023/09/263 年前
1.1.22023/07/173 年前
1.1.12023/07/173 年前

关于 @elastic.io/x509 的常见问题

@elastic.io/x509 是什么?

简单的 X509 证书解析器

如何安装 @elastic.io/x509?

在项目目录运行 npm install @elastic.io/x509,或使用 pnpm add / yarn add / bun add。

@elastic.io/x509 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/elastic.io__x509 是否存在。

@elastic.io/x509 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@elastic.io/x509 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=10。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@elastic.io/x509 可以商用吗?

@elastic.io/x509 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@elastic.io/x509 的下载量有多少?

根据 npm 官方下载统计,@elastic.io/x509 在 2026/10/13 – 2026/11/11 这 30 天内被下载 4,355 次,日均约 145 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@elastic.io/x509 还在维护吗?

最新版本 1.1.3 发布于 2023/09/26(3 年前);至今共发布 3 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/07/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。