Используйте Безопасный Websocket с PHP-шифрованным рукопожатием


Я читал, что (secure) Websocket использует те же порты, что и протокол HTTP(S). Однако мой PHP Websocket сервер получает зашифрованное рукопожатие от клиентов, я слушаю открытые соединения на порту 12345.

Моя система хорошо работает через небезопасный websocket, но мне нужно добавить безопасную функцию, и я не понимаю, почему я получаю эти зашифрованные рукопожатия. Это было бы прозрачно для меня благодаря модели OSI...

Если я настрою apache для активации механизма SSL и прослушивание на порту 12345. Я не смогу использовать этот порт снова для моего PHP Websocket сервера, потому что он будет тогда в состоянии "уже используется"... или я что-то забыл...

Я заблудился : (

Правка:

Вот мой безопасный заголовок websocket (с помощью wss://):

Request URL:wss://localhost:12345/

И вот мой простой заголовок websocket (используя ws://):

Request URL:ws://localhost:12345/ Request Method:GET Status Code:101 Switching Protocols Request Headersview source Connection:Upgrade Host:localhost:12345 Origin:http://localhost Sec-WebSocket-Extensions:x-webkit-deflate-frame Sec-WebSocket-Key:wovBDvKiKdy/+0Y2BQPr9w== Sec-WebSocket-Version:13 Upgrade:websocket (Key3):00:00:00:00:00:00:00:00 Response Headersview source Connection:Upgrade Sec-WebSocket-Accept:1ao7ngQG4LAa3JxFibyvoocbSAM= Upgrade:websocket (Challenge Response):00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

Почему я получаю больше без защищенного соединения?

1 4

1 ответ:

Я читал, что (secure) Websocket использует те же порты, что и протокол HTTP(S)

По умолчанию, да - но вы можете переопределить порт в обоих через URL, рассмотрим:

http://www.example.com:443/
https://www.example.com:8080/
http://www.example.com:12345/

Если что - то другое уже прослушивает определенный порт/адрес, то вы не можете запустить там второй сервер-поэтому, если ваш веб-сервер уже прослушивает порт 443 (https), вы не сможете запустить отдельный сервер websocket на том же порту.

Просто оставьте ваш HTTPS сервер на 443 и запустите сервер ssl ws на 12345.


Только что видел ваш последний комментарий.

SSL-это не только то, какой порт вы слушаете - трафик зашифрован. Если вы хотите обрабатывать трафик wss, то вам нужен сервер с поддержкой SSL. Существуют различные способы реализации этого, это зависит от того, как вы реализовали текущий сервер.