@MrFavour

Security websocket JS with Python?

Добрый день!

Есть websocket сервер на python3 и клиент на JS

Обычное соединение ws://localhost:8765 на локалке подключается и работает, но на VPS с HTTPS не работает

Пример сервера:
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ssl_context.load_cert_chain(certfile="/etc/letsencrypt/live/mysite.ru/fullchain.pem", keyfile="/etc/letsencrypt/live/mysite.ru/privkey.pem")

start_server = websockets.serve(server.ws_handler, 'localhost', 8765, ssl=ssl_context)


Пробовал и самоподписанные сертификаты , тоже не фурычит
localhost_pem = Path(__file__ + "/../ssl/certificate.pem").resolve()
localhost_key = Path(__file__ + "/../ssl/key.pem").resolve()


На JS все просто
socket = new WebSocket("wss://"+location.host+":8765");


Сервер запускается и работает без ошибок, но клиент не подключается
Возвращает code: 1006
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
@MEDIOFF
Python Developer
Я конечно не эксперт, но логично предположить
start_server = websockets.serve(server.ws_handler, 'localhost', 8765, ssl=ssl_context)
что вы не можете подрубиться к localhost из вне, попробуйте заменить localhost на 0.0.0.0

P.S: Либо проксируйте запросы на localhost, с помощью того же Nginx
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы