📅  最后修改于: 2023-12-03 14:44:40.502000             🧑  作者: Mango
当使用 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属性来获取拒绝验证时抛出的错误。