我有一个用 Node 编写的服务器,它实现了一个安全的双向 SSL 网络服务器:
var https = require('https');
var express = require('express');
var app = express();
var options {
key: ...,
cert: ...,
ca: ...,
requestCert: true,
rejectUnauthorized: true
};
https.createServer(options, app).listen(port, host);
但是由于某些未知原因,客户端连接失败。因此,如果我能获得有关连接失败原因的任何日志,那就太好了。
到目前为止,我能得到的所有日志都来自 app
,它是一个 express 对象。但问题是,当连接因证书问题而被拒绝时,它不会到达 express,所以我没有收到错误日志。如何从 https
服务器获取日志?
最佳答案
我也遇到过这个问题,虽然我无法想出一个解决方案来记录 https
模块中的所有错误,但我能够让它记录调试信息通过使用:
NODE_DEBUG='tls,https' node server.js
这并不理想,因为它没有给你确切的错误(例如:Bad SSL Handshake)和相关的回溯,它确实给你像 TLS: onhandshakestart
这样的信息,让你知道如果在日志中找不到相应的 TLS: onhandshakeend
,则如果出现错误,则退出。
关于node.js - 如何在 Node 的 https 模块中记录 SSL 握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49901701/