Vene4ka
@Vene4ka
фанат фаната пхп

Что я делаю не так?

Здравствуйте, Уважаемые пользователи Тостера! Совсем недавно я начал изучать протокол связи поверх TCP-соединения websocket. Проблема заключается в том, что я прекрасно использую данный протокол на не защищенном сайте (Без SSL), но вот с подключением SSL сертификата - возникает очень не приятная ситуация! У меня ошибка
Mixed Content: The page at 'https://Не важно/' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://Не важно:2346/'. This request has been blocked; this endpoint must be available over WSS.

Так вот: Я вычитал, что в JS нужно использовать не ws, а wss, что по сути я и попробовал сделать, но тут снова неприятность...
main.js:1 WebSocket connection to 'wss://Секрет:2346/' failed:

Пошел курить доки.. Вычитал, что в прекрасной библиотеке Workerman есть поддержка Enable SSL
Отлично, подумал я и сразу же все подключил следующим образом:
<?php
use Workerman\Worker;

require "./vendor/autoload.php";
$context = array(
    'ssl' => array(
        'local_cert'  => '../../../etc/letsencrypt/live/Секрет/cert.pem',
        'local_pk'    => '../../../etc/letsencrypt/live/Секрет/key.pem',
        'verify_peer' => false,
    )
);

$ws_worker = new Worker('websocket://0.0.0.0:2346', $context);
$ws_worker->transport = 'ssl';

Worker::runAll();

Запустил и тут тоже-самое.. Ужас!
Я не упал духом и на этот раз, пошел и переустановил линукс на дедике (ну а вдруг)
Тоже не помогло..
Вообщем жуть, ужас и страдание. Помогите!

P.S.
const ws = new WebSocket("wss://secret:2346");
ws.onopen = function () {
    alert("Connected");
}


ws.onerror
Отдает undefined
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
@402d
начинал с бейсика на УКНЦ в 1988
php у Вас знает о корневых сертификатах ?
https://docs.bolt.cm/4.0/howto/curl-ca-certificates
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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