📅  最后修改于: 2023-12-03 15:17:55.809000             🧑  作者: Mango
在 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
,这意味着连接成功建立,证书已经通过验证。