На дедик сервер для web-socet

Сергей Раминков
На сайте с 03.08.2023
Offline
20
420
Добрый день. Для web-socet установил на дедик скрипт php сервера. Связь клиента с сервером по http работает нормально. Но не могу перевести на протокол https. Сертификат получал от центра  Let's Encrypt. Основной, промежуточный сертификаты и ключ в редакторе на вид валидные, пути к ним прописаны правильно Клиент перевёл на https и в коде сделал изменения для связи по защищённому протоколу. Делал несколько попыток установки сертификатов на сервер - нет соединения сайта с сервером. Прошу поделиться опытом.
emergency assistance
lutskboy
На сайте с 22.11.2013
Offline
187
#1

websocket на php наверно не очень хороший выбор

может ето поможет https://stackoverflow.com/questions/44295193/php-sockets-with-ssl-tls-no-suitable-shared-cipher-could-be-used

PHP Sockets with SSL / TLS - no suitable shared cipher could be used
PHP Sockets with SSL / TLS - no suitable shared cipher could be used
  • 2017.05.31
  • Niraj Shah
  • stackoverflow.com
I am attempting to create a server and client using PHP Sockets with SSL / TLS. However, when sending data to the server, I receive the following error: PHP Warning: stream_socket_accept(): SSL_R_NO_SHARED_CIPHER: no suitable shared cipher could...
I7
На сайте с 12.06.2008
Offline
371
#2
Сергей Раминков :
Делал несколько попыток установки сертификатов на сервер - нет соединения сайта с сервером. Прошу поделиться опытом.

Что именно значит "нет соединения"? Какая конкретно ошибка возникает?

Сергей Раминков
На сайте с 03.08.2023
Offline
20
#3
Ilya74 #:

Что именно значит "нет соединения"? Какая конкретно ошибка возникает?

Microsoft Windows [Version 6.3.9600] (c) Љ®аЇ®а жЁп Њ ©Єа®б®дв (Microsoft Corporation), 2013. ‚ᥠЇа ў  § йЁйҐ­л. C:\Users\Administrator>cd C:\php C:\php>php server.php WebSocket сервер (WS) запущен на 45.137.65.243:8080 PHP Warning: stream_socket_accept(): SSL operation failed with code 1. OpenSSL Error messages: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown in C :\php\server.php on line 53 Warning: stream_socket_accept(): SSL operation failed with code 1. OpenSSL Error messages: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown in C :\php\server.php on line 53 PHP Warning: stream_socket_accept(): Failed to enable crypto in C:\php\server.p hp on line 53 Warning: stream_socket_accept(): Failed to enable crypto in C:\php\server.php on line 53 PHP Warning: stream_socket_accept(): Accept failed: Операция успеш но завершена in C:\php\server.php on line 53 Warning: stream_socket_accept(): Accept failed: Операция успешно завершена in C:\php\server.php on line 53

Ну и в gpt естественно - это ошибки из командной строки - переведи всё в читаемый вид: 

Вот расшифровка ошибок:

  1. Ошибка SSL при приёме соединений ( stream_socket_accept )

    • SSL operation failed with code 1. OpenSSL Error messages:
    • error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
    • Это значит, что клиент, который подключается к WebSocket-серверу, не доверяет SSL-сертификату сервера.
  2. Ошибка включения шифрования ( Failed to enable crypto )

    • Это указывает на проблемы с установкой защищённого соединения.
  3. Ошибка принятия соединения ( Accept failed )

    • Операция успешно завершена
    • Несмотря на то, что фраза звучит позитивно, это ошибка. Обычно она означает, что соединение было закрыто или не установлено должным образом.

Возможные причины и решения:

  1. Проблема с SSL-сертификатом

    • Проверь, какой сертификат используется сервером. Он может быть самоподписанный или недействительный для клиента.
    • Попробуй запустить сервер без SSL (без tls:// в stream_socket_server() ).
  2. Не настроена поддержка SSL в PHP

    • Проверь, что в php.ini включены нужные модули:
      ini
      Копировать Редактировать
      extension=openssl
    • Убедись, что OpenSSL установлен и правильно работает ( php -m | findstr openssl ).
  3. Неправильный формат сертификата

    • Проверь файлы .crt и .key , они должны соответствовать требованиям OpenSSL.
    • Попробуй создать новый сертификат, например, с помощью Let's Encrypt или самоподписанный:
      pgsql
      Копировать Редактировать
      openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
  4. Проблема с версией SSL/TLS

    • Убедись, что сервер и клиент используют одну версию протокола (TLS 1.2 или 1.3, а не SSLv3, который устарел).

И так по кругу - меняю разрешения протоколов и т.д. В конце концов рекомендации возвращаются к совету проверить соединение без протоколов. 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий