📜  Node.js tlsSocket.authorizationError 属性(1)

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

Node.js tlsSocket.authorizationError 属性

当使用 Node.js 的 TLS 模块时,若服务器认证失败,则会触发tlsSocket.authorizationError事件,此时可以通过读取tlsSocket.authorizationError属性来获取拒绝验证时抛出的错误。

语法
tlsSocket.authorizationError
描述

tlsSocket.authorizationError属性是一个错误对象,用于说明TLS握手期间发生的错误,其包含如下属性:

  • message:错误信息
  • code:错误码
  • cause:错误原因
  • syscall:系统调用

这些错误属性可以帮助我们更好地理解TLS握手中的错误发生位置和原因。

示例
const tls = require('tls');
const fs = require('fs');

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

const server = tls.createServer(options, (socket) => {
  console.log('server connected', socket.authorized ? 'authorized' : 'unauthorized');

  socket.on('error', (err) => {
    console.error('socket error:', err);
    console.error('authorization error:', socket.authorizationError);
  });
});

server.listen(8000, () => {
  console.log('server started');
});

这是一个简单的TLS服务器示例代码,它监听8000端口并启用TLS加密通信。在客户端连接服务器时,如果证书验证失败,则会触发authorizationError事件,我们可以通过tlsSocket.authorizationError属性来获取拒绝验证时抛出的错误。

参考文献