javascript - 使用 node.js 调试 TLS 客户端连接

标签 javascript node.js ssl

我正在尝试使用 node.js 和 TLS 建立与服务器的客户端连接,但失败了。

我的问题是如何获取有关连接失败原因的更多信息。理想情况下类似于使用 openssl(连接良好)时显示握手和证书交换。

目前我得到的只是{[错误:套接字挂起]代码:'ECONNRESET'}。

我正在使用类似于以下基于互联网博客的代码。

var tls = require('tls'),
 fs = require('fs');

// callback for when secure connection established
function connected(stream) {
    if (stream) {
      stream.write('Hello');
    } else {
      console.log("Connection failed");
    }
}

// needed to keep socket variable in scope
var dummy = this;

// try to connect to the server
dummy.socket = tls.connect(
{
    port: 8000,
    host: 'dest.server.com',
    ca: [
            fs.readFileSync('C:\\Tools\\Certificates\\TestRoot.pem', 'utf8')
        ],
    cert: fs.readFileSync('C:\\Tools\\Certificates\\source.server.com.cert.pem', 'utf8'),
    key:  fs.readFileSync('C:\\Tools\\Certificates\\source.server.com.key.pem', 'utf8'),
    passphrase: 'password',
}
, function() {
   // callback called only after successful socket connection
   dummy.connected = true;
   if (dummy.socket.authorized) {
      // authorization successful
      console.log('auth ok');
      dummy.socket.setEncoding('utf-8');
      connected(dummy.socket);
   } else {
      // authorization failed
      console.log('auth fail');
     console.log(dummy.socket.authorizationError);
     connected(null);
   }
});

dummy.socket.addListener('data', function(data) {
   // received data
   console.log(data);
});

dummy.socket.addListener('error', function(error) {
   if (!dummy.connected) {
     // socket was not connected, notify callback
     connected(null);
   }
   console.log("FAIL");
   console.log(error);
});

dummy.socket.addListener('close', function() {
 // do something
});

最佳答案

好的,在深入研究源代码之后,您似乎可以通过将 NODE_DEBUG 环境变量设置为包含“tls”来获得一些额外的信息。 它对我的情况没有太大帮助,但可能对其他人有帮助。

关于javascript - 使用 node.js 调试 TLS 客户端连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12508477/

相关文章:

python - 使用 Mechanize 获取证书验证失败错误

java - 如何为 Websphere MQ 客户端启用带有客户端证书的 SSL?

javascript - jsTree:如何获取之前选择的树节点ID?

javascript - Javascript 中具有弱引用的查找表

javascript - iFrame 的 webkit fullscreenchange 事件

javascript - 如何从嵌套函数返回响应?

javascript - socket.io 如何区分消息是针对哪个房间的

c# - 带有 SslStream 的 XmlTextReader - 从流中读取多个 xml

javascript - 写入多个不断更新的日志的最佳方法是什么?

javascript - Ajax返回html并对其使用jquery