02
Окт
2017

Защищенное соединение вебсокетов php

Доброго времени суток. Я использую библиотеку Workerman для создания вебсокет-сервера. Без защищенного соединения все работает, а вот когда пытаюсь настроить wss, то все слетает. На странице проекта написано, что нужно передать файлы local_cert и local_pk. Как я понимаю, эти файлы создавались при получении ssl-сертификата, который я получал через letsencrypt. Т.е. они должны находиться в папке /etc/letsencrypt/live/site.ru. Там у меня есть 4 .pem файла (cert.pem, chain.pem, fullchain.pem, privkey.pem). Если я верно понимаю, мне нужны cert.pem и privkey.pem (но вот только в примере на гитхабе файл .key, но таких я у себя не нашел). Если я передаю эти файлы, сервер нормально запускается, а когда пытаюсь подключиться через ws = new WebSocket("wss://site.ru:8000");, то браузер выдает ошибку WebSocket connection to 'wss://site.ru:8000/' failed: WebSocket opening handshake was canceled

Часть кода при создании websocket-сервера:

$context = array(
    'ssl' => array(
        'local_cert' => '/etc/letsencrypt/live/site.ru/cert.pem',
        'local_pk'   => '/etc/letsencrypt/live/site.ru/privkey.pem'
    )
);

// создаём ws-сервер
$ws_worker = new Worker("websocket://0.0.0.0:8000", $context);
$ws_worker->transport = 'ssl';

Подскажите, пожалуйста, верно ли я вообще всё это понимаю, те ли файлы подключаю, в чем может быть моя ошибка?

Источник: https://ru.stackoverflow.com/questions/725781/%D0%97%D0%B0%D1%89%D0%B8%D1%89%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%B5%D0%B1%D1%81%D0%BE%D0%BA%D0%B5%D1%82%D0%BE%D0%B2-php

Share

Тебе может это понравится...