мой плохой, я понял, что сервер сокетов AIR, который я использую, небезопасен, мне нужно переписать, чтобы использовать flash.net.SecureSocket ...
Эрик
Ответы:
172
Соединение WebSocket начинает свою жизнь с рукопожатия HTTP или HTTPS. Когда доступ к странице осуществляется через HTTP, вы можете использовать WS или WSS (WebSocket secure: WS over TLS). Однако, когда ваша страница загружается через HTTPS, вы можете использовать только WSS - браузеры не позволяют «понизить» безопасность.
это то, что у меня есть, но я понял, что сервер сокетов AIR, который я использую, небезопасен, мне нужно переписать, чтобы использовать flash.net.SecureSocket ...
Эрик
У Flash тоже есть свои серьезные проблемы ... Вы создаете сервер WebSocket (если да, то почему), или вы создаете приложение?
Питер Московиц
1
Да, у меня запущен сервер сокетов AIR.
Эрик
Итак, как выбрать WSS, если страница не загружается по HTTP?
анатолий техтоник
30
Вы не можете использовать WebSockets через HTTPS, но вы можете использовать WebSockets через TLS (HTTPS - это HTTP через TLS). Просто используйте "wss: //" в URI.
Я считаю, что последняя версия Firefox не позволит вам использовать веб-сокеты без TLS со страницы HTTPS, но обратное не должно быть проблемой.
Итак, какое решение? У меня WS-сервер работает через http. Я купил SSL, и браузер больше не позволяет мне подключаться к WS. Я переключил WS на WSS: //, и теперь он не соединяется с WebSocket
muaaz 01
@muaaz ваш сервер WebSocket должен работать в режиме WSS и предпочтительно загружаться с тем же сертификатом / ключами SSL, что и ваш веб-сервер, обслуживающий ваши исходные веб-страницы, которые пытаются подключиться к серверу websocket.
kanaka
4
Спасибо. кстати, я только что решил это, проксируя (используя apache) запрос от wss://to ws://. Итак, я использую, wss://ws.domain.comа apache применяет к нему прокси и перенаправляет запрос на то, где запущен сервер WS. например: ws://10.12.23.45:5641/server.php. и я знаю, что это очень плохое решение, хотя оно работает для меня. Буду признателен за вашу помощь, если вы проведете меня через конфигурацию apache. например: куда положить и .certт. д. спасибо!
muaaz 02
@muaaz извините, я не знаю конфигурацию apache, кроме как сам погуглить.
kanaka
21
1 дополнительное предостережение (помимо ответа kanaka / peter): если вы используете WSS и сертификат сервера неприемлем для браузера, вы можете не получить диалоговое окно, отображаемое браузером (как это происходит с веб-страницами). Это связано с тем, что WebSockets рассматривается как так называемый «субресурс», а принятие сертификата / исключение безопасности / любые диалоги не отображаются для субресурсов.
Ответы:
Соединение WebSocket начинает свою жизнь с рукопожатия HTTP или HTTPS. Когда доступ к странице осуществляется через HTTP, вы можете использовать WS или WSS (WebSocket secure: WS over TLS). Однако, когда ваша страница загружается через HTTPS, вы можете использовать только WSS - браузеры не позволяют «понизить» безопасность.
источник
Вы не можете использовать WebSockets через HTTPS, но вы можете использовать WebSockets через TLS (HTTPS - это HTTP через TLS). Просто используйте "wss: //" в URI.
Я считаю, что последняя версия Firefox не позволит вам использовать веб-сокеты без TLS со страницы HTTPS, но обратное не должно быть проблемой.
источник
wss://
tows://
. Итак, я использую,wss://ws.domain.com
а apache применяет к нему прокси и перенаправляет запрос на то, где запущен сервер WS. например:ws://10.12.23.45:5641/server.php
. и я знаю, что это очень плохое решение, хотя оно работает для меня. Буду признателен за вашу помощь, если вы проведете меня через конфигурацию apache. например: куда положить и.cert
т. д. спасибо!1 дополнительное предостережение (помимо ответа kanaka / peter): если вы используете WSS и сертификат сервера неприемлем для браузера, вы можете не получить диалоговое окно, отображаемое браузером (как это происходит с веб-страницами). Это связано с тем, что WebSockets рассматривается как так называемый «субресурс», а принятие сертификата / исключение безопасности / любые диалоги не отображаются для субресурсов.
источник
alert()
?