Невозможно установить Apache 2.4 с веб-сокетами WSS для Laravel - PullRequest
0 голосов
/ 03 октября 2019

Я был в течение 3 дней на этом, и пришло время отозвать это, я не могу решить это, и моя поддержка сервера отказывается помочь мне далее, потому что они не специализируются на веб-сокетах. С помощью WS это работает, но на WSS (https) это не так.

Я использую Apache / 2.4.41 (cPanel)

Я установил 3 модуля php из cpanel: -mod_proxy -mod_proxy_wstunnel -mod_proxy_http

В моем файле https.conf есть внешний файл настроек, в который я могу добавить некоторый код (чтобы я не мог редактировать файл main.conf).

Я добавил это:

  SSLProxyEngine on
  SSLProxyVerify none 
  SSLProxyCheckPeerCN off
  SSLProxyCheckPeerName off
  SSLProxyCheckPeerExpire off

  RewriteEngine on
  ProxyRequests off
  ProxyPreserveHost on
  RewriteCond ${HTTP:Upgrade} websocket [NC]
  RewriteCond ${HTTP:Connection} upgrade [NC]
  RewriteRule .* "ws://mywebsite.com:6001/$1" [P,L]

ProxyPass /app ws://mywebsite.com:6001
ProxyPassReverse /app wss://mywebsite.com:6001

Перезагрузил httpd и попытался подключиться через панель веб-сокетов Laravel. Я также следил за настройкой здесь: https://docs.beyondco.de/laravel-websockets/1.0/basic-usage/ssl.html#configuration

As:

    'ssl' => [
        /*
         * Path to local certificate file on filesystem. It must be a PEM encoded file which
         * contains your certificate and private key. It can optionally contain the
         * certificate chain of issuers. The private key also may be contained
         * in a separate file specified by local_pk.
         */
        'local_cert' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT', null),

        /*
         * Path to local private key file on filesystem in case of separate files for
         * certificate (local_cert) and private key.
         */
        'local_pk' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_PK', null),

        /*
         * Passphrase for your local_cert file.
         */
        'passphrase' => env('LARAVEL_WEBSOCKETS_SSL_PASSPHRASE', null),

        'verify_peer' => false,
    ],

.env файл в Laravel:

LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT=/home/account/public_html/ssl/mywebsite_com_a25e6_65c3b_1577536339_5996f634be6fba7d72a3bcf7b.crt
LARAVEL_WEBSOCKETS_SSL_LOCAL_PK=/home/account/public_html/ssl/a25e6_65c3b_cc885c0c620bd3119e79f1fd.key

При нажатии на кнопку подключенияна приборной панели веб-сокета laravel, я получаю эту ошибку:

pusher.min.js:8 WebSocket connection to 'wss://mywebsite.com:6001/app/mnbmndbf090980df9s0d980098fskjh?protocol=7&client=js&version=4.3.1&flash=false' failed: WebSocket opening handshake was canceled

У меня больше ничего нет в моих журналах.

Может кто-нибудь сказать мне, если мои настройки httpd верны?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...