Имеется сервис, написанный на Go. На нём поднят Http сервер на порту 8090, также там поднят сокет.
Имеется приложение на Php, которое слушает события по этому сокету. Всё это добро находится на одном сервере, приложение к сервису обращается через JS так:
conn = new WebSocket("ws://192.168.1.20:8090/events");
Всё работает, всё здорово. Наступает момент привязки к приложению PUSH-уведомлений, требующих HTTPS. Поднимаем Https, получаем пуши, но видим что сокет отвалился. В консоли ошибка:
Mixed Content: The page at '
https://mysite.ru/admin/service' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://192.168.1.20:8090/events'. This request has been blocked; this endpoint must be available over WSS.
Погуглив видим что сейчас нужно подключаться с префиксом WSS. Меняем префикс, получаем следующее:
WebSocket connection to 'wss://192.168.1.20:8090/events' failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR
Что испробовано:
Читал что можно обойти проблему через nginx proxy, но как? Ловить коннект по порту 8090 и слать его на http, чтобы всё было как раньше? Пробовал, успеха особо не принесло.
Добавить поддержку https в сервис GO? Но какой сертификат? Тот же что и на само приложение?