Могу ли я изменить WebSocket с ws на wss? (000webhost)

#php #ssl #websocket #https #unity-webgl

#php #ssl #websocket #https #unity-webgl

Вопрос:

Я создал веб-сайт в качестве информационной панели (используя 000webhost) для изменения данных в базе данных MySQL с помощью php, который сейчас работает нормально. После этого у меня есть сборка Unity WebGL, загруженная на itch.io который также работал нормально, пока ему не понадобилось получать данные из базы данных через php. Когда я намеревался получить данные через доступ к хранилищу файлов php на сервере 000webhost, я получил следующую ошибку, отображаемую в веб-консоли с веб-сайта доступа.

Смешанный контент: страница в ‘https://.itch.io /’ был загружен по протоколу HTTPS, но попытался подключиться к небезопасной конечной точке WebSocket ‘ws://:54998/’. Этот запрос заблокирован; эта конечная точка должна быть доступна через WSS

Ссылка, которую я использовал для доступа к файлам php, использовала https вместо http. Я все еще новичок в этой области, я хотел бы знать, могу ли я изменить конечную точку WebSocket на wss вместо ws? Нужен ли мне платный план для решения этой проблемы? Я видел, что единый план хостинга предлагал бесплатный SSL-сертификат. Пожалуйста, помогите мне, я открыт для любых предложений / советов, спасибо.

Ответ №1:

Сам сервер Websocket должен настроить SSL-сертификат. Если это не так, вам нужен обратный прокси, такой как nginx или apache, для обработки SSL и пересылки на незашифрованный ws:// websocket.

В любом случае, websocket также должен работать на порту по умолчанию 443/80, поскольку многие брандмауэры блокируют порты, отличные от портов по умолчанию, по соображениям безопасности. В этом случае вам понадобится reverseproxy, если у вас нет выделенного IP-адреса для сервера websocket.

Ответ №2:

Использовать socket.io . Большинство проблем решены, и больше ничего не нужно делать.

 var socket = io.connect('https://www...', {secure: true});
 

Комментарии:

1. это никоим образом не решает проблему, поскольку проблема связана с сервером.