Я пытаюсь использовать stunnel, чтобы превратить соединение wss в соединение ws, потому что вссервер не поддерживает wss. На сервере работает Ubuntu, а клиент, который я использую, — это Chrome, если это имеет значение.
Это мой stunnel.conf
файл
foreground = yes
debug = info
output = /var/log/stunnel.log
[wsServer]
cert = /etc/letsencrypt/live/myurl.com/fullchain.pem
key = /etc/letsencrypt/live/myurl.com/privkey.pem
accept = 0.0.0.0:8443
connect = 127.0.0.1:8080
Я пытаюсь подключиться к нему с помощью вызова javascript:
const socket = new WebSocket('wss://myurl.com:8433');
Но я постоянно получаю ошибку подключения:
(index):13 WebSocket connection to 'wss://myurl.com:8433/' failed: (anonymous) @ (index):13
Вот что я проверил:
ws://myurl.com:8080
, он работает нормально/var/log/stunnel.log
, хотя файл был создан после того, как я добавил поле вывода в файл .confЛюбые идеи о том, что еще я могу попробовать? Есть ли причина, по которой сертификат, который работает для https, не будет работать с wss?
Люди рекомендуют использовать ProxyPass через apache и вообще избегать stunnel?
Не решение, а следующий шаг по устранению неполадок. Получите себе openssl и попытайтесь подключиться к 8443. Это должно вернуть информацию о сертификате и, по крайней мере, подтвердить, что stunnel представляет сертификат.
openssl s_client -connect myurl.com:8443
Прошло некоторое время с тех пор, как я настроил stunnel, но IIRC вы не можете поставить пароль на свой ключ.
это хорошая идея, я ценю, что вы рассказали мне об этом инструменте. И это привело меня к ответу, потому что я понял, что сделал глупую опечатку. Я использую 8443 в некоторых местах и 8433 в других местах. Измените stunnel.conf на 8433, и теперь он работает.