📌  相关文章
📜  Node.js tlsSocket.getPeerCertificate() 方法(1)

📅  最后修改于: 2023-12-03 14:44:40.590000             🧑  作者: Mango

Node.js tlsSocket.getPeerCertificate() 方法

在TLS凭证交换后,该方法能够返回包含对等方证书详细信息的对象。

语法
tlsSocket.getPeerCertificate([detailed])
参数
  • detailed:一个可选的布尔类型参数,如果设置为 true,则返回的证书包括所有的数据(包括公钥和私钥)。默认值为 false
返回值

该方法返回一个 JSON 对象,表示对等方证书的详细信息。对象包括以下字段:

  • subject:一个JSON对象,包括了这个证书的所有主题(Subject)字段。
  • issuer:一个JSON对象,包含了这个证书颁发者的信息。
  • raw:一个 Buffer 对象,包含了对等方证书的所有信息。
  • valid_from:一个字符串,表示证书的有效开始时间。
  • valid_to:一个字符串,表示证书的有效截止时间。
  • serialNumber:一个字符串,表示证书的序列号。
  • fingerPrint:一个字符串,表示证书的指纹。
示例
const tls = require('tls');
const fs = require('fs');

const options = {
  key: fs.readFileSync('server-key.pem'),
  cert: fs.readFileSync('server-cert.pem')
};

const server = tls.createServer(options, (socket) => {
  console.log(`Server connected: ${socket.authorized ? 'authorized' : 'unauthorized'}`);
  console.log('Server TLS version: ', socket.getProtocol());

  const peerCertificate = socket.getPeerCertificate(true);
  console.log('Server Peer Certificate: ', peerCertificate);
});

server.listen(8000, () => {
  console.log('Server running on port 8000.');
});

在以上示例中,创建了一个 TLS 服务器,并且在服务器端口监听连接。当有客户端连接到该服务器时,服务器通过 socket.getPeerCertificate(true) 方法获得了对等方证书的详细信息,并打印在控制台上。

结语

通过 tlsSocket.getPeerCertificate() 方法,开发者能够快速获得对等方证书的详细信息,以此进行一些必要的安全验证。本文介绍了该方法的语法、参数、返回值及示例。