- Почему появляется ошибка?
- Поиск по этому блогу
- Битрикс: ошибка работы с сокетами
- Работа с сокетами Ошибка! Не работает Bitrix
- Re: Работа с сокетами Ошибка! Не работает Bitrix
- Re: Работа с сокетами Ошибка! Не работает Bitrix
- Re: Работа с сокетами Ошибка! Не работает Bitrix
- Re: Работа с сокетами Ошибка! Не работает Bitrix
- Битрикс настройка SSL, ошибка работы с сокетами
- Ошибка проверки сайта Работа с сокетами — Socket error [111]: Connection refused
- Bitrix. Исправляем ошибку «Работа с сокетами — Ошибка! Не работает»
- Требуется наша помощь?
- На что эта ошибка влияет?
- Как исправить ошибку?
- Как исправить ошибку «Работа с сокетами
Почему появляется ошибка?
Ошибка появляется в случае, если сайт не может подключиться к себе же, используя сокеты.
Причины возникновения проблемы могут быть самые разные, приведем наиболее часто встречающиеся:
- сайт был недавно перенесен на новый сервер, у него были изменены NS-сервера, но они еще в стадии обновления.
- текущий сайт является копией сайта и работает на стороннем сервере под основным доменом, для обеспечения работоспособности в файле hosts прописан IP нового сервера,
- в /etc/hosts (для Linux) или C:\Windows\System32\drivers\etc\hosts (для Windows) прописан некорректный IP-адрес для текущего хоста.
- другие проблемы, касающиеся DNS,
- проблема с http-авторизацией,
- некорректные редиректы на сервере,
- у вас локальный сайт, который недоступен извне,
- проблема с SSL-сертификатом.
Более точно причину можно понять, посмотрев лог проверки сайта — он находится в папке /bitrix/ и имеет формат имени site_checker_*.log.
Развернул копию сайта на dev.сайт, как дополнительный сайт в BitrixEnv, т.е. в папке /home/bitrix/ext_www/dev.сайт
Модуль Push&Pull работает странно:
После загрузки сыплет в консоль ошибками
WebSocket connection to '...' failed: Error in connection establishment: net::ERR_CERT_AUTHORITY_INVALID
bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: WebSocket {url: "wss://dev.сайт/bitrix/subws/?CHANNEL_ID=e8d54…645111ee1e9ee8210639c&binaryMode=true&revision=19", readyState: 3, bufferedAmount: 0, onopen: null, onerror: null, …}
defaultPrevented: false
eventPhase: 0
isTrusted: true
path: []
returnValue: true
srcElement: WebSocket {url: "wss://dev.сайт/bitrix/subws/?CHANNEL_ID=e8d54…645111ee1e9ee8210639c&binaryMode=true&revision=19", readyState: 3, bufferedAmount: 0, onopen: null, onerror: null, …}
target: WebSocket {url: "wss://dev.сайт/bitrix/subws/?CHANNEL_ID=e8d54…645111ee1e9ee8210639c&binaryMode=true&revision=19", readyState: 3, bufferedAmount: 0, onopen: null, onerror: null, …}
timeStamp: 21547.630000000026
type: "error"
После где-то минуты начинает работать — статут соединения становится — online:
При этом проверка системы говорит что сокеты не работают:
Как я понимаю P&P начинает работать в обход сокетов.
В чем может быть проблема?
В проверке сайте можно наблюдать такую ошибку
Работа с сокетами Ошибка! Не работает
Она может встретиться по многим причинам, но самая основная, это не работающий сертификат SSL, что бы сайт работал по протоколу HTTPS.
Подробнее об ошибке можно посмотреть в файле лога или кликнув на подробности.
Если вы видите следующую информацию в нем:
Connection to ssl://site.ru:443 Fail Socket error [0]
Это значит, что дело действительно в сертификате.
Первым делом нужно проверить правильно ли установлен сертификат и установлен ли вообще. Как его установить подробно расписано в этой статье Битрикс настройка SSL, ошибка работы с сокетами
Если же сертификат у вас установлен, но ошибка осталась, следует проверить корневой сертификат на сервере. Существует цепочка сертификатов, и возможно у одного из них закончился срок действия.
Также в консоли можно обратиться к своему сайту через CURL и если вы видите:
curl: (7) Failed to connect to Network is unreachable
Это еще раз подтверждает то, что проблема в сертификате.
Был такой случай, что у корневого сертификата IdenTrust DST Root CA X3 закончился срок действия, из-за этого массово возникли проблемы у всех сайтов с бесплатным сертификатом Let’s Encrypt от Google.
Для обновления корневого сертификата необходимо выполнить две команды в консоли:
yum install ca-certificates
update-ca-trust
В CentOS выполнить команды:
trust dump —filter «pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10» | openssl x509 | sudo tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem
sudo update-ca-trust
После обновления корневого сертификата, обновите также основной Let’s Encrypt и ошибка должна уйти.
Загрузка
Во время тестирования сайта, выскакивает следующая ошибка:
Работа с сокетами (check_socket): Fail
А в журнале мы видим следующий лог:
2016-Feb-27 13:41:10 Работа с сокетами (check_socket): Fail Connection to site.ru:80 Success == Request == GET /bitrix/admin/site_checker.php?test_type=socket_test&unique_id=83f81a8666278b68e58012ce161a1dd0 HTTP/1.1 Host: site.ru == Response == HTTP/1.1 404 Not Found Server: nginx/1.4.6 (Ubuntu) Date: Sat, 27 Feb 2016 12:41:10 GMT Content-Type: text/html Content-Length: 177 Connection: keep-alive == Body == <html> <head><title>404 Not Found</title></head> <body bgcolor="white"> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.4.6 (Ubuntu)</center> </body> </html> ==========
Для начала мы видим в этом логе, что при запросе система получает 404 ошибку. Нам нужно понять почему она происходит. Для этого нам нужно проверить логи веб-сервера. Так как у меня работает на nginx + apache2, я открыл логи nginx (Linux /var/log/nginx/error.log).
В данном логе я ищу мой запрос
2016/02/27 13:41:10 [error] 2309#0: *658 openat() "/usr/share/nginx/html/bitrix/admin/site_checker.php" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /bitrix/admin/site_checker.php?test_type=socket_test&unique_id=83f81a8666278b68e58012ce161a1dd0 HTTP/1.1", host: "site.ru"
И что мы тут видим? Когда скрипт обращается сам к себе, то происходит обращение вообще не понятно по какому адресу «/usr/share/nginx/html/bitrix/admin/site_checker.php», тогда как сайт лежит: /var/www/site.ru/www/bitrix/admin/site_checker.php
Так же обратите внимание по какому адресу обращается скрипт:
client: 127.0.0.1, server: localhost,
Из этого мы делаем вывод что site.ru привязан к localhost и при обращении сайта к самому себе пытается найти файлы не в папке сайта, а в папке nginx по умолчанию. Открыв фаил /etc/hosts я увидел следующую запись:
127.0.0.1 localhost.localdomain localhost site.ru
Изменив эту строчку на
127.0.0.1 localhost.localdomain localhost
я успешно прошел тест, и ошибка больше не возникала!
Во время тестирования сайта, выскакивает следующая ошибка:
А в журнале мы видим следующий лог:
Для начала мы видим в этом логе, что при запросе система получает 404 ошибку. Нам нужно понять почему она происходит. Для этого нам нужно проверить логи веб-сервера. Так как у меня работает на nginx + apache2, я открыл логи nginx (Linux /var/log/nginx/error.log).
В данном логе я ищу мой запрос
И что мы тут видим? Когда скрипт обращается сам к себе, то происходит обращение вообще не понятно по какому адресу «/usr/share/nginx/html/bitrix/admin/site_checker.php», тогда как сайт лежит: /var/www/site.ru/www/bitrix/admin/site_checker.php
Так же обратите внимание по какому адресу обращается скрипт:
Из этого мы делаем вывод что site.ru привязан к localhost и при обращении сайта к самому себе пытается найти файлы не в папке сайта, а в папке nginx по умолчанию. Открыв фаил /etc/hosts я увидел следующую запись:
Изменив эту строчку на
я успешно прошел тест, и ошибка больше не возникала!
Во время тестирования сайта, выскакивает следующая ошибка:
А в журнале мы видим следующий лог:
Причины чаще всего две:
1. домен прописан в файле /etc/hosts на IP адрес 127.0.0.1
убираем site.ru, чтобы получилось так:
2. Запрос идет на IPv6, например в ISPmanager 4, где нет возможности одновременно назначить домену несколько IP адресов, IPv4 и IPv6
Проверить это можно локальным запросом через консоль:
Если в ответ вернулась ошибка 404, значит проблема именно в запросе IPv6:
В этом случае как вариант — можно отключить IPv6. Для этого нужно добавить в конец файла /etc/sysctl.conf строки:
Перезапустите sysctl с помощью следующей команды
Теперь можно проверить IP адреса сетевых интерфейсов командой
Поиск по этому блогу
Битрикс: ошибка работы с сокетами
Ошибка работы с сокетами выявляется в BitrixVM при запуске инструмента «Проверка системы»:
Сообщения об этом будет выведено в нескольких разделах теста:
Осуществляется сетевое подключение с веб-сервера к самому себе. Это необходимо чтобы проверить работу сетевых функций, а также требуется для ряда последующих тестов.
А значит, если этот базовый тест не отработал, то дальнейшие тесты, где требуется создание независимого php процесса, не могут быть произведены.
Обычно проблема возникает, если подключение запрещено фаерволом, доступ к административной части запрещен по IP или для входа на сайт требуется HTTP/NTLM авторизация. На этапе тестирования необходимо отключить эти ограничения.
Подробности в журнале проверки системы.
В журнале будет следующая информация:
где IP 9. 114:80 — внешний IP адрес BitrixVM сервера.
Если доступ к серверу ограничен фаерволом, а подключение происходит только по IP-адресу (домен не привязан), то ошибка работы с сокетами исправляется следующим образом:
- Проверяется корректность настройки DNS-сервера(ров) в панели управления виртуальной машиной (т.е. у VPS-провайдера);
- Проверяется корректность настройки DNS-сервера(ров) на BitrixVM;
- К серверу привязывается доменное имя;
- Административная панель открывается по домену и тест запускается повторно.
HWADDR=00:51:52:09:05:01
NAME=eth3
GATEWAY=192.168.1.1
DEVICE=eth3
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=192.168.1.2
#DNS1=192.168.1.1
#PEERDNS=yes
DNS1=8.8.8.8
DNS2=8.8.4.4
check_link_down() <
return 1;
>
После установки SSL сертификата в битриксе на виртуальной машине BitrixVM версии 7.4.1 начала появляться ошибка с сокетами, при этом если перейти на сайт по обычному http, то такой проблемы не наблюдается.
Ниже описано как решить данную проблему с сокетами при использование SSL сертификата и протокола HTTPS в Bitrix virtual appliance version 7.4.1 («1С-Битрикс: Веб-окружение»).
Открываем SSH клиет (PuTTY).
Если меню битрикса не отображается сразу, то заходим в меню следующей командой:
Затем выбираем поочередно пункты в меню:
8. Manage pool web servers
3. Configure certificates
2. Configure own certificate
Если данных пунктов у вас нет, то сначала нужно обязательно создать пул:
1. Create Management pool of server
После того, как зашли в пункт 2. Configure own certificate, указываем сайт или оставляем по умолчанию Enter site name (default):
Указываем:
Private Key path: /etc/nginx/ssl/cert.key
Certificate path: /etc/nginx/ssl/cert.crt
Certificate Chain path: /etc/nginx/ssl/cert_ca.crt
Пути заменяем на свои, либо предварительно запишите файлы сертификатов с такими именами по таким же путям.
Также если обратится к сайту в консоли через curl командой:
curl https:// site.com :443
выходило следующие curl: (60) Peer’s Certificate issuer is not recognized.
При нормальной работе должен показываться HTML код сайта.
Проблема еще была в том, что у меня не было никаких промежуточных сертификатов, а только публичный сертификат (CRT) и приватный ключ (Private KEY).
Центр сертификации мне больше ничего не выдавал, а точнее хостинг где я их покупал.
Техподдержка не отвечала, у них были праздничные выходные.
Как же их получить?
Нашёл решение такое, открываем сайт в браузере Firefox, нажимаем на замочек, затем на стрелку справа от зеленной надписи «Защищенное соединение», затем внизу «Подробнее».
После чего откроется окно «Информация о странице». Там нажимаем «Просмотреть сертификат».
Откроется страница с различными данными и параметрами сертификата. Находим ниже ссылки Загрузить PEM (сертификат) и PEM (цепочка сертификатов). Именно последний нам и нужен. Качаем PEM (цепочка сертификатов).
Формат PEM я переименовал в CRT. У меня сработало с ним, но возможно и с PEM сработает.
После того как я указал этот chain сертификат, как указано выше в Certificate Chain path, у меня наконец-то пропала ошибка с сокетами и все наконец стало работать как надо.
Записи о сертификатах создаются в файле:
/etc/nginx/bx/site_avaliable/ssl.s1.conf
там указано где хранятся сертификаты:
ssl_certificate /etc/nginx/certs/default/cert.crt;
ssl_certificate_key /etc/nginx/certs/default/cert.key;
ssl_trusted_certificate /etc/nginx/certs/default/cert_ca.crt;
Также данные записи были сделаны в файле /etc/nginx/bx/conf/ssl-push-custom.conf
А изначально настройки брались из /etc/nginx/bx/conf/ssl.conf
В документации вообще сказано, что для сайта по умолчанию s1 (который находится в директории /home/bitrix/www) файл будет называться /etc/nginx/bx/site_avaliable/s1.ssl.conf, а для дополнительных сайтов (которые создаются в директории /home/bitrix/ext_www/название_хоста) — /etc/nginx/bx/site_avaliable/bx_ext_ssl_название_хоста.conf.
Поэтому нужный файл конфигурации здесь еще нужно постараться определить.
Не забываем также указать в файле /etc/hosts ваш IP и домен. я указал два ip версии 4 и 6, а также 127.0.0.1 localhost
После правок нужно выполнить команду
nginx -t
И перезагрузить
service nginx restart или # /etc/init.d/nginx restart
Если нужно установить бесплатный сертификат LetsEncrypt, об это написано в этой статье Установка SSL сертификата LetsEncrypt на BitrixVM
Здесь VPS на BrainyCP за 2$ в месяц, а здесь 50GB шаред-хостинг на BrainyCP за 1.9$ в месяц
lexkosha
- Сообщения: 6
- Зарегистрирован: Сб июн 12, 2021 3:25 pm
Работа с сокетами Ошибка! Не работает Bitrix
Всем привет!
ребята подскажите как исправить ошибку «Работа с сокетами Ошибка! Не работает»
Делаю тест системы. Выдает ошибку, читал что нужно править файл хост, поправил как написано не помогло.
CentOS 7
Журнал проверки системы
== Response ==
HTTP/1.1 404 Not Found
Server: nginx/1.20.1
Date: Sat, 12 Jun 2021 15:24:03 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 196
Connection: keep-alive== Body ==
<!DOCTYPE HTML PUBLIC «-//IETF//DTD HTML 2.0//EN»>
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
sbury
- Сообщения: 1129
- Зарегистрирован: Вт фев 06, 2018 7:51 am
Re: Работа с сокетами Ошибка! Не работает Bitrix
Сб июн 12, 2021 9:39 pm
в файле /etc/hosts, первой строкой добавьте запись
127.0.0.1 _ваш_домен_
при помощи команды
hostname
проверьте какой он у вас вообще прописан в системе. bitrix требует запись полного доменного имени в системе
Второе, сертификат SSL должен быть выдан данному домену.
И третье, если в DNS есть запись ipv6 типа АААА, и она не подключена к домену, или есть не существующая, она должна быть удалена
Пока хоть одно из этих условий не выполнено , вы будете получать данную ошибку.
sbury
- Сообщения: 1129
- Зарегистрирован: Вт фев 06, 2018 7:51 am
Re: Работа с сокетами Ошибка! Не работает Bitrix
Вс июн 13, 2021 8:03 am
показывайте что прописано. А так же вывод hostname. Можете в личку
lexkosha
- Сообщения: 6
- Зарегистрирован: Сб июн 12, 2021 3:25 pm
Re: Работа с сокетами Ошибка! Не работает Bitrix
Вт авг 31, 2021 8:44 pm
Сегодня попробовал по новой все поднять. К сожалению решить проблему не удалось. Может кто то сталкивался и победил?
confignsk
- Сообщения: 14
- Зарегистрирован: Пн дек 21, 2020 1:38 am
Re: Работа с сокетами Ошибка! Не работает Bitrix
Чт окт 14, 2021 8:19 am
Всем добрый день! Какие варианты еще решений можно использовать ?
Доброго времени суток уважаемые форумчане!
Достался мне сайт на движке «bitrix» на CentOS 7.
При его проверке встроенными средствами движка через админ-панель (веб-браузер) вылазит куча ошибок (см. во вложении).
При нажатии на знак «?» (который находится в строке с названием ошибки) получаем подсказку со следующим содержимым (см. во вложении):
«Результат теста: Ошибка! Не работает
Осуществляется сетевое подключение с веб-сервера к самому себе. Это необходимо чтобы проверить работу сетевых функций, а также требуется для ряда последующих тестов.
А значит, если этот базовый тест не отработал, то дальнейшие тесты, где требуется создание независимого php процесса, не могут быть произведены.
Обычно проблема возникает, если подключение запрещено фаерволом, доступ к административной части запрещен по IP или для входа на сайт требуется HTTP/NTLM авторизация. На этапе тестирования необходимо отключить эти ограничения.
Подробности в журнале проверки системы.»
Но описанная рекомендация для моего случая не помогла решить проблему.
Поэтому я решил пойти иным путём.
Взял тестовую машину и накатил туда чистый CentOS 7.
Установил битрикс-окружение с помощью родного скрипта, скачанного с сайта разработчиков.
Установил демо-сайт для пробы.
Прогнал этот демо-сайт на ошибки с помощью админ-панели (через веб-морду) средствами самого движка. В результате — никаких ошибок не выявлено!
После этого забекапил «старыми дедовскими» методами «глючный сайт»: «mysqldump + tar»
Перенес этот бекап на свежеустановленный демо-сайт и развернул (импортировал базу, распаковал содержимое архива в правильную папку и проверил корректность прав на файлы и папки).
Снова прогнал сайт на ошибки через веб-админку — ВСЕ ошибки остались от старого сайта
При этом всем, конфиги в консоли сервера не правил!
Также добавлю сюда журнал проверки системы:
2020-Apr-14 17:12:19 Наличие необходимых модулей php (check_php_modules): Ok
Все необходимые модули установлены
2020-Apr-14 17:12:19 Обязательные параметры PHP (check_php_settings): Fail
Ошибка! Вы используете веб-окружение 1С-Битрикс старой версии (7.3.3), установите актуальную версию, чтобы не было проблем с настройкой сервера (7.4.3
).
2020-Apr-14 17:12:19 Модули веб-сервера (check_security): Ok
Конфликтов не выявлено
2020-Apr-14 17:12:19 Значения переменных сервера (check_server_vars): Ok
Корректные
2020-Apr-14 17:12:19 Сохранение сессии (check_session): Ok
50% done
2020-Apr-14 17:12:19 Сохранение сессии (check_session): Ok
Успешно
2020-Apr-14 17:12:19 Параметры настройки UTF (mbstring и константа BX_UTF) (check_mbstring): Ok
Правильные. Сайт работает в UTF кодировке
2020-Apr-14 17:12:19 Служебные скрипты в корне сайта (check_install_scripts): Ok
Отсутствуют
2020-Apr-14 17:12:19 Работа с сокетами (check_socket): Fail
Connection to ssl://bitrix24.mycompany.com:443 Fail
Socket error
Ошибка! Не работает
2020-Apr-14 17:12:20 Выполнение агентов на cron (check_bx_crontab): Ok
Успешно
2020-Apr-14 17:12:20 Бизнес-чат в реальном времени (check_pull_stream): Fail
Server version: 3 (Bitrix Push server)
Connection to ssl://bitrix24.mycompany.com:443 Fail
Socket error
== Response ==
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Tue, 14 Apr 2020 14:12:20 GMT
Server: nginx/1.8.1
X-Powered-By: PHP/5.3.3
Content-Length: 46
Connection: keep-alive
== Body ==
Check: OK
Status: 200
Connection: keep-alive
==========
Connection to checker.internal.bitrix24.com:80 Success
== Request ==
GET /check/?license_hash=ee054a156a095bf850f0e0539a11dc45&host=bitrix24.mycompany.com&port=8894&https=Y HTTP/1.1
host: checker.internal.bitrix24.com
== Response ==
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Tue, 14 Apr 2020 14:12:20 GMT
Server: nginx/1.8.1
X-Powered-By: PHP/5.3.3
Content-Length: 46
Connection: keep-alive
== Body ==
Check: OK
Status: 403
Connection: keep-alive
Успешно
2020-Apr-14 17:12:21 Уведомления пользователям на мобильные устройства (push уведомления) (check_push_bitrix): Ok
Connection to ssl://cloud-messaging.bitrix24.com:443 Success
Успешно
2020-Apr-14 17:12:21 Работа с документами через Google Docs и MS Office Online (check_access_docs): Ok
Успешно
2020-Apr-14 17:12:21 Битрикс24.Диск. Быстрая работа с файлами (check_fast_download): Warning
Замечание. Не удалось проверить из-за ошибки в работе с сокетами
2020-Apr-14 17:12:21 Поиск по содержимому документов (check_search): Ok
Успешно
2020-Apr-14 17:12:21 Отправка почтовых уведомлений (check_mail): Ok
Успешно
2020-Apr-14 17:12:22 Доступ к облачным сервисам 1С-Битрикс (check_ca_file): Ok
Успешно
2020-Apr-14 17:12:22 Интеграция с почтой внутри компании (check_connect_mail): Ok
Успешно
2020-Apr-14 17:12:22 Интеграция с соцсетями (check_socnet): Ok
Успешно
2020-Apr-14 17:12:22 Работа с REST API (check_rest): Ok
Успешно
2020-Apr-14 17:12:22 Публикация сообщений в живую ленту из почты (check_mail_push): Warning
Замечание. Не удалось получить MX запись для домена bitrix24.mycompany.com
2020-Apr-14 17:12:22 Доступ снаружи к Экстранет (check_extranet): Ok
Успешно
2020-Apr-14 17:12:22 Редактирование документов в MS Office (check_webdav): Warning
Замечание. Не удалось проверить из-за ошибки в работе с сокетами
2020-Apr-14 17:12:22 Интеграция с внешними приложениями (MS Office, Outlook, Exchange) через безопасное подключение к порталу (check_socket_ssl): Warning
Connection to ssl://bitrix24.mycompany.com:443 (certificate check enabled) Fail
Connection to ssl://bitrix24.mycompany.com:443 Success
Замечание. Сервер имеет невалидный SSL сертификат, возможны проблемы в интеграции с внешними приложениями
2020-Apr-14 17:12:22 Интеграция с Active Directory (check_ad): Warning
Замечание. Интеграция с AD сервером не настроена
2020-Apr-14 17:12:22 Единая авторизация в Windows сети (NTLM) (check_ntlm): Warning
Замечание. Выключена опция использования NTLM авторизации в настройках модуля ldap
2020-Apr-14 17:12:22 Оценка производительности сервера (check_perf): Warning
Замечание. Не удалось проверить из-за ошибки в работе с сокетами
2020-Apr-14 17:12:22 Ускорение открытия страниц (check_compression): Warning
Замечание. Не удалось проверить из-за ошибки в работе с сокетами
Пропишите доменное имя в /etc/hosts
- Записки IT специалиста — Форум
Bitrix – ошибки в работе с сокетами
Битрикс настройка SSL, ошибка работы с сокетами
После установки SSL сертификата в битриксе на виртуальной машине BitrixVM версии 7.4.1 начала появляться ошибка с сокетами, при этом если перейти на сайт по обычному http, то такой проблемы не наблюдается. Ниже описано как решить данную проблему с сокетами при использование SSL сертификата и протокола HTTPS в Bitrix virtual appliance version 7.4.1 («1С-Битрикс: Веб-окружение»).
Открываем SSH клиет (PuTTY). Если меню битрикса не отображается сразу, то заходим в меню следующей командой:
Затем выбираем поочередно пункты в меню:
8. Manage pool web servers 3. Configure certificates 2. Configure own certificate
Если данных пунктов у вас нет, то сначала нужно обязательно создать пул: 1. Create Management pool of server
После того, как зашли в пункт 2. Configure own certificate, указываем сайт или оставляем по умолчанию Enter site name (default):
Указываем: Private Key path: /etc/nginx/ssl/cert.key Certificate path: /etc/nginx/ssl/cert.crt Certificate Chain path: /etc/nginx/ssl/cert_ca.crt
Пути заменяем на свои, либо предварительно запишите файлы сертификатов с такими именами по таким же путям.
Готово, сайт должен открываться по HTTPS, но у меня не работало, поскольку я не указывал Certificate Chain path, у меня не было сертификатов для цепочки (промежуточных) и пока я не указал эти сертификаты в Certificate Chain path у меня SSL не работал. Точнее сам сайт по HTTPS открывался нормально в защищённом режиме, но в проверке системы битрикс показывалась ошибка с сокетами: Ошибка! Работа с сокетами (check_socket): Fail Connection to ssl://site.com:443 Fail, Connection to ssl://site.com:443 Fail Socket error : Подробности ошибки указаны в журнале проверки системы.
Также если обратится к сайту в консоли через curl командой: curl https:// site.com :443 выходило следующие curl: (60) Peer’s Certificate issuer is not recognized. При нормальной работе должен показываться HTML код сайта.
Проблема еще была в том, что у меня не было никаких промежуточных сертификатов, а только публичный сертификат (CRT) и приватный ключ (Private KEY).
Центр сертификации мне больше ничего не выдавал, а точнее хостинг где я их покупал. Техподдержка не отвечала, у них были праздничные выходные.
Как же их получить? Нашёл решение такое, открываем сайт в браузере Firefox, нажимаем на замочек, затем на стрелку справа от зеленной надписи «Защищенное соединение», затем внизу «Подробнее». После чего откроется окно «Информация о странице». Там нажимаем «Просмотреть сертификат». Откроется страница с различными данными и параметрами сертификата. Находим ниже ссылки Загрузить PEM (сертификат) и PEM (цепочка сертификатов). Именно последний нам и нужен. Качаем PEM (цепочка сертификатов).
Формат PEM я переименовал в CRT. У меня сработало с ним, но возможно и с PEM сработает. После того как я указал этот chain сертификат, как указано выше в Certificate Chain path, у меня наконец-то пропала ошибка с сокетами и все наконец стало работать как надо.
Записи о сертификатах создаются в файле: /etc/nginx/bx/site_avaliable/ssl.s1.conf
там указано где хранятся сертификаты: ssl_certificate /etc/nginx/certs/default/cert.crt; ssl_certificate_key /etc/nginx/certs/default/cert.key; ssl_trusted_certificate /etc/nginx/certs/default/cert_ca.crt;
Также данные записи были сделаны в файле /etc/nginx/bx/conf/ssl-push-custom.conf А изначально настройки брались из /etc/nginx/bx/conf/ssl.conf
В документации вообще сказано, что для сайта по умолчанию s1 (который находится в директории /home/bitrix/www) файл будет называться /etc/nginx/bx/site_avaliable/s1.ssl.conf, а для дополнительных сайтов (которые создаются в директории /home/bitrix/ext_www/название_хоста) — /etc/nginx/bx/site_avaliable/bx_ext_ssl_название_хоста.conf.
Поэтому нужный файл конфигурации здесь еще нужно постараться определить.
Не забываем также указать в файле /etc/hosts ваш IP и домен. я указал два ip версии 4 и 6, а также 127.0.0.1 localhost
После правок нужно выполнить команду nginx -t И перезагрузить service nginx restart или # /etc/init.d/nginx restart
Если нужно установить бесплатный сертификат LetsEncrypt, об это написано в этой статье Установка SSL сертификата LetsEncrypt на BitrixVM
Ошибка проверки сайта Работа с сокетами — Socket error [111]: Connection refused
в файле /etc/hosts пропишите127.0.0.1 _ВАШ_ДОМЕН_
Битрикс то ли по текущему урлу (по которому заходите) пытается законнектиться, то ли по домену сайта.Вообщем помогает выше написанное
Посмотрите лог проверки (что-то типа /home/bitrix/www/bitrix/site_checker_d64fb2e3f5834fc1af5d853 77f2c3f3c.log). В нем будет написано куда пытается подключиться скрипт:
2013-Feb-25 06:49:58 Работа с сокетами (check_socket): FailConnection to 123.456.789.123:80Socket error : Connection refused
В моем случае проблема была в том, что заказчик предоставил только адрес шлюза 123.456.789.123, а на нем пробросил порт 80 на хост с виртуалкой. А виртуалка ничего не знала про этот IP.
В своем локальном файле c:\Windows\System32\drivers\etc\hosts я добавил запись:80.66.94.230 portal.localdom
А на виртуалке добавил /etc/hosts имя portal.localdom127.0.0.1 localhost.localdom localhost localhost portal.localdom
После этого проверка сокетов прошла успешно.
Еще одна причина возникновения данной ошибки:На сайте стоит http-авторизация через утилиту passwd и .htaccess в вышележащей папке.
Проверка сайта проходит успешно!
У меня вот какая проблема.
При проверке системы (Рабочий стол-> Настройки-> Инструменты-> Проверка системы) происходит следующее:
Если в .htaccess в корне сайта закомментирована строка php_value mbstring.internal_encoding UTF-8, то (как и следует ожидать) выводится ошибка:
Ошибка! Сайт работает в UTF кодировке, настройки mbstring: mbstring.func_overload=2 mbstring.internal_encoding= требуется: mbstring.func_overload=2 mbstring.internal_encoding=utf-8
если мы раскомментируем строку, то сообщение об ошибке кодировки не выводится, но выводится другая ошибка: Работа с сокетами — Ошибка! Не работает
Смотрим журнал проверки
Ситуация следующая (обращаю внимание — домен кириллический):. Когда не указана кодировка utf-8, то в журнале имеется запись: 2013-Dec-19 15:25:56 Работа с сокетами (check_socket): Ok Connection to xn——dlcdhdea0afa5acqdcd1cjk8r.xn--p1ai:80 Success
Когда не указана кодировка utf-8, то в журнале имеется запись: 2013-Dec-19 15:25:56 Работа с сокетами (check_socket): Ok Connection to xn——dlcdhdea0afa5acqdcd1cjk8r.xn--p1ai:80 Success
Как только мы в .htaccess указываем mbstring.internal_encoding utf-8, то в журнале просто нет хоста, к которому проверяется подключение: 2013-Dec-19 15:34:42 Работа с сокетами (check_socket): Fail Connection to :80 Fail Socket error : php_network_getaddresses: getaddrinfo failed: Name or service not known
>Connection to xn——dlcdhdea0afa5acqdcd1cjk8r.xn--p1ai:80 Success
т.е. система не видит адреса, к которому нужно подключаться.____________________________________________________________
Есть подозрение, что проблема в кириллическом домене, т.к. на этой площадке стоят еще две системы и ничего похожего там не происходит, тестирование проходит успешно.
Bitrix. Исправляем ошибку «Работа с сокетами — Ошибка! Не работает»
Во время тестирования сайта, выскакивает следующая ошибка:
Для начала мы видим в этом логе, что при запросе система получает 404 ошибку. Нам нужно понять почему она происходит. Для этого нам нужно проверить логи веб-сервера. Так как у меня работает на nginx + apache2, я открыл логи nginx (Linux /var/log/nginx/error.log).
В данном логе я ищу мой запрос
Так же обратите внимание по какому адресу обращается скрипт:
Из этого мы делаем вывод что site.ru привязан к localhost и при обращении сайта к самому себе пытается найти файлы не в папке сайта, а в папке nginx по умолчанию. Открыв фаил /etc/hosts я увидел следующую запись:
я успешно прошел тест, и ошибка больше не возникала!
Требуется наша помощь?
Мы имеем огромный опыт, на протяжении 10 лет помогая клиентам в решении самых различных проблем на их сайтах.
Поэтому, если Вы не имеете возможности решить эту проблему самостоятельно, обращайтесь к нам — мы все сделаем оперативно и квалифицированно.
На что эта ошибка влияет?
Если проверка на работу сокетов не проходит, то другие тесты также не могут быть выполнены: «Замечание. Не удалось проверить из-за ошибки в работе с сокетами».
При этом, в большинстве случаев сайт продолжает нормально работать.
Как исправить ошибку?
Способ решения в полной мере зависит от причины.
Опишем так же по пунктам:
- в случае недавнего переезда сайта на новый сервер достаточно просто подождать, процесс обновления DNS обычно занимает несколько часов, но может занять до нескольких дней, этот процесс зависит от разных факторов,
- в данном случае необходимо в файле hosts прописать правило для домена, обычно это делается в той же строке, где и localhost — добавить домен сайта в конце строки,
- в этом случае нужно просто убрать некорректную запись из hosts,
- в случае других проблем с DNS необходимо более детально изучать вопрос и обращаться к специалистам,
- необходимо корректно сконфигурировать сервер (в т.ч. файл .htaccess),
- необходимо корректно настроить редиректы, также учитывая порт подключения,
- решение такое же как в пункте 2 — необходимо отредактировать hosts, добавив имя текущего домена,
- проверьте корректность установки SSL-сертификата.