Node.js - отправлять незашифрованное сообщение перед запуском TLS - PullRequest
0 голосов
/ 13 марта 2020

всем, у меня есть проект и я хочу создать XML интерфейс для системы безопасности. Системы безопасности являются хостом, и я разрабатываю клиента в node.js на первом этапе и позже для узла-красного.

Описание процесса: - Чтобы установить sh TLS-соединение, хост получает незашифрованный Команда STARTTLS.

Процедура (Установление соединения)

  1. Запуск TCP-соединения
  2. Установление TCP-соединения
  3. Клиент-хост (STARTTLS)
  4. Хост готов к приему клиента TLS

Когда я запускаю TCP-соединение с "net" и пытаюсь переадресовать соединение на "tls", порт источника изменяется и Хост означает, что часть TLS является новым клиентом. Например:

  • соединение "net" = исходный порт 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');
       });

1 Ответ

0 голосов
/ 19 марта 2020

Большое спасибо за вашу помощь "Обновление TCP до TLS" - это то, что я искал.

https://nodejs.org/api/net.html#net_class_net_socket

https://nodejs.org/api/tls.html#tls_tls_connect_options_callback >>> розетка

var client = new net.Socket();

client.connect(PORT, HOST, function() {
    console.log('Connected');
    client.write(startTLS,function (){
        console.log("request sent")
    })
var options = {
    socket: client,
    pfx: fs.readFileSync('./Export/client.pfx'),
    secureProtocol: "TLSv1_2_method",
    rejectUnauthorized: false

}; 

var tlsSocket = new tls.connect(options)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...