Node.js-在启动TLS之前发送非加密消息
各位,, 我有一个项目,想为安全系统创建一个XML接口。 安全系统是主机,我将在node.js中第一步开发客户端,稍后在node.js中开发客户端 过程描述: -要建立TLS连接,主机将接收未加密的STARTTLS命令 程序(建立连接)Node.js-在启动TLS之前发送非加密消息,node.js,xml,ssl,Node.js,Xml,Ssl,各位,, 我有一个项目,想为安全系统创建一个XML接口。 安全系统是主机,我将在node.js中第一步开发客户端,稍后在node.js中开发客户端 过程描述: -要建立TLS连接,主机将接收未加密的STARTTLS命令 程序(建立连接) 启动TCP连接 TCP连接已建立 客户端到主机(STARTTLS) 主机已准备好接收TLS客户端 当我用“net”启动一个TCP连接并尝试将连接转发到“tls”时,源端口被更改,主机意味着tls部分是一个新的客户端。 e、 g: 连接“网络”=源TCP端口:2
- 连接“网络”=源TCP端口:2483
- 连接“tls”=源TCP端口:2484
var net = require('net');
var tls = require('tls');
var fs = require('fs');
var port = 5555;
var host = '192.168.2.126';
var conn = net.createConnection(port ,host);
var options = {
pfx: fs.readFileSync('client.pfx')
};
conn.on('connect', function() {
console.log('connected to server');
conn.write('STARTTLS');
connTLS()
});
function connTLS (){
conn = tls.connect(port, host, options, function() {
// Check if the authorization worked
if (conn.authorized) {
console.log("Connection authorized by a Certificate Authority.");
} else {
console.log("Connection not authorized: " + conn.authorizationError)
}
// Send a friendly message
conn.write('OK it works');
});
}
conn.on('data' , function (data){
var result = "";
for(var i = 0; i < data.length; ++i){
result+= (String.fromCharCode(data[i]));
}
console.log("Data received from the server: " , result);
});
conn.on('error', function(err) {
console.log('Error in connection:', err);
});
conn.on('close', function() {
console.log('connection got closed, will try to reconnect');
conn.end();
});
conn.on('end' , function(){
console.log('Requested an end to the TCP connection');
});
var net=require('net');
var tls=需要('tls');
var fs=需要('fs');
var端口=5555;
var主机='192.168.2.126';
var conn=net.createConnection(端口、主机);
变量选项={
pfx:fs.readFileSync('client.pfx')
};
conn.on('connect',function(){
log('连接到服务器');
conn.write(“STARTTLS”);
康特尔斯()
});
函数connTLS(){
conn=tls.connect(端口、主机、选项、函数(){
//检查授权是否有效
如果(康涅狄格州授权){
log(“由证书颁发机构授权的连接”);
}否则{
console.log(“连接未授权:+conn.authorizationError”)
}
//发出友好的信息
conn.write(‘正常工作’);
});
}
连接on(数据),功能(数据){
var结果=”;
对于(变量i=0;i
非常感谢您的帮助“将TCP升级到TLS”是我搜索的内容
>>插座
var client = new net.Socket();
client.connect(PORT, HOST, function() {
console.log('Connected');
client.write(startTLS,function (){
console.log("request sent")
})
你为什么要首先创造这样一个奇怪的设计?TLS升级的常用方法(如SMTP、IMAP、POP、FTPS等)不是使用其他源端口创建新的TCP连接,而是通过在已建立的TCP连接中执行TLS握手来将当前TCP连接升级到TLS。非常感谢您的帮助“将TCP升级到TLS”这就是我一直在寻找的,但现在我有另一个问题。
var options = {
socket: client,
pfx: fs.readFileSync('./Export/client.pfx'),
secureProtocol: "TLSv1_2_method",
rejectUnauthorized: false
};
var tlsSocket = new tls.connect(options)