使用node.jsdebuggingTLS客户端连接

我试图build立一个客户端连接到服务器使用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环境variables来包含'tls'来获得一些额外的信息。 这对我来说没有什么帮助,但对别人可能有帮助。