📜  Node.js x509.issuer 属性(1)

📅  最后修改于: 2023-12-03 15:03:14.826000             🧑  作者: Mango

Node.js x509.issuer 属性介绍

在 Node.js 中,x509.issuer 属性是一个表示 X.509 证书颁发者的对象。它通常用于验证证书是否由可信的颁发者颁发。

语法
certificate.issuer

其中,certificate 是一个 X.509 证书对象。

返回值

x509.issuer 属性返回一个对象,包含以下属性:

  • C: 颁发者国家/地区代码。
  • ST: 颁发者省/州。
  • L: 颁发者城市。
  • O: 颁发者组织名。
  • OU: 颁发者部门。
  • CN: 颁发者通用名称(通常为 Fully Qualified Domain Name)。
示例
获取证书颁发者信息
const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('example.com.key'),
  cert: fs.readFileSync('example.com.crt')
};

https.createServer(options, (req, res) => {
  const cert = req.socket.getPeerCertificate();
  console.log(cert.issuer);
  res.end('Hello, world!');
}).listen(443);

以上示例中,我们创建了一个 https 服务器,当有客户端连接时打印该客户端证书的颁发者信息。其中,cert.issuer 表示证书颁发者的对象。

验证证书颁发者
const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('example.com.key'),
  cert: fs.readFileSync('example.com.crt')
};

https.createServer(options, (req, res) => {
  const cert = req.socket.getPeerCertificate();
  if (cert.issuer.CN !== 'My Trusted CA') {
    res.writeHead(403);
    res.end('Invalid certificate');
    return;
  }
  res.end('Hello, world!');
}).listen(443);

以上示例中,我们创建了一个 https 服务器,当有客户端连接时验证该客户端证书的颁发者是否为一个名为 My Trusted CA 的可信颁发者。如果不是,将返回 403 响应并结束请求。