Как настроить безопасный туннель, чтобы позволить клиенту общаться с веб-сокетом?

Мне нужно разрешить клиенту подключаться к веб-сокету на сервере 10.0.4.160. На сервере 10.0.4.160 не установлен SSL, но есть веб-сокет, который работает на порте 8080.

Мне нужно настроить безопасный туннель, чтобы позволить клиенту подключаться к веб-сокету.

Я установил stunnel на моем Windows Server 2008 R2 и изменил файл stunnel.conf, чтобы он выглядел так

[websockets]
accept = 8443
connect = 8080
verify = 2
CAfile = ca-certs.pem
client = yes

Я ожидаю подключения к серверу через порт 8433, и stunnel позволит подключиться к порту 8080

Это код, который я использую в консоли клиента: "Конечно, консоль находится на ПК, который находится в моей внутренней сети"

var conn = new WebSocket('wss://10.0.4.160:8443');
conn.onopen = function(e) {
    console.log("Connection established!");
};

conn.onmessage = function(e) {
    console.log(e.data);
};

На сервере я открываю командную строку и выполняю этот telnet localhost 8080

Я получаю командную строку, и когда я запускаю приведенный выше код из консоли, я вижу это в командной строке сервера

введите описание изображения здесь

Но через несколько секунд я получаю эту ошибку в консоли

WebSocket connection to 'wss://10.0.4.160:8443/' failed: Error in connection establishment: net::ERR_TIMED_OUT

Если я попытаюсь отправить команду, используя conn.sent('Hello') Я получаю эту ошибку

VM289:2 Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
    at Error (native)
    at <anonymous>:2:6
    at Object.InjectedScript._evaluateOn (<anonymous>:905:140)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:838:34)
    at Object.InjectedScript.evaluate (<anonymous>:694:21)

Кроме того, я попытался включить отладку в strunnel, добавив debug = 7

Это то, что я получил в консоли Stunnel. Я не понимаю, что не так, поскольку журналы показывают, что клиент подключен, но я не могу отправлять сообщения от клиента на сервер

2015.08.16 16:40:06 LOG7[36]: Service [websockets] started
2015.08.16 16:40:06 LOG5[36]: Service [websockets] accepted connection from 10.0.4.195:21963
2015.08.16 16:40:06 LOG6[36]: s_connect: connecting 127.0.0.1:8080
2015.08.16 16:40:06 LOG7[36]: s_connect: s_poll_wait 127.0.0.1:8080: waiting 10 seconds
2015.08.16 16:40:06 LOG5[36]: s_connect: connected 127.0.0.1:8080
2015.08.16 16:40:06 LOG5[36]: Service [websockets] connected remote server from 127.0.0.1:50891
2015.08.16 16:40:06 LOG7[36]: Remote socket (FD=668) initialized
2015.08.16 16:40:06 LOG6[36]: SNI: sending servername: localhost
2015.08.16 16:40:06 LOG7[36]: SSL state (connect): before/connect initialization
2015.08.16 16:40:06 LOG7[36]: SSL state (connect): SSLv2/v3 write client hello A

Что я здесь не так делаю? Почему происходит сбой соединения?

0 ответов

Другие вопросы по тегам