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

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

Node.js tlsSocket.authorized 属性

在 Node.js 的 TLS(Transport Layer Security)模块中,tlsSocket 对象表示与服务器的 SSL/TLS 连接。其中,tlsSocket.authorized 属性表示该连接的证书是否已通过验证。

语法
const authorized = tlsSocket.authorized;
介绍

当创建一个基于 SSL/TLS 的网络连接时,服务器总是会提供一个数字证书,以证明其身份的真实性。在建立连接时,客户端会验证该证书的有效性,并决定是否信任该证书所代表的服务器。如果证书有效并信任,则 SSL/TLS 连接将继续。否则,连接将关闭。

Node.js 的 TLS 模块提供了 tls.Socket 类,该类表示与服务器的 SSL/TLS 连接。每个 tls.Socket 对象在连接建立时都将获得一个 authorized 属性,该属性表示该连接的证书是否已通过验证。

如果证书通过了验证,则 tlsSocket.authorized 属性将为 true。否则,它将为 false。如果未提供验证回调函数,则 tlsSocket.authorized 属性将返回 true,并且仅在证书验证失败时触发 tlsSocket.authorizationError 事件。

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

const options = {
  host: 'www.google.com',
  port: 443,
};

const socket = tls.connect(options, () => {
  console.log('connected');
  console.log('authorized:', socket.authorized);
  socket.write('GET / HTTP/1.1\r\n');
  socket.write('Host: www.google.com\r\n');
  socket.end();
});

socket.on('data', (data) => {
  console.log(data.toString());
});

socket.on('close', () => {
  console.log('disconnected');
});

在以上示例中,我们创建了一个基于 SSL/TLS 的连接,连接到 Google 的 SSL 网站,并发送 HTTP 请求。在连接建立后,我们打印了 socket.authorized 属性的值。在控制台中,我们可以看到该值为 true,这意味着连接成功建立,证书已经通过验证。