ПН-ПТ: с 10 до 17

Ошибки CORS в свежих версиях браузеров 

при работе в закрытом контуре

Иногда наше облачное приложение не удаётся установить или настроить на коробочном Битрикс24, который работает внутри локальной сети: установка зависает или данные в приложении не загружаются

Почти всегда причина в таких случаях не в приложении и не на наших серверах, а в защите современных браузеров. Проблема устраняется на вашей стороне

Ниже рассказываем, как определить, что вы столкнулись именно с этой проблемой, проверить её причину и выбрать подходящий способ решения

1. Как понять, что это ваш случай

1.1. Битрикс24 работает в локальной сети
  • Используется коробочная версия Битрикс24 на собственном сервере
  • Работа с порталом выполняется из корпоративной или рабочей сети


1.2. Наблюдается один из следующих признаков

  • Установка приложения зависает - например, на 1% и не продвигается несколько минут и дольше
  • Приложение открывается, но данные не загружаются
Если вы наблюдаете такую ситуацию, проверьте, не блокирует ли браузер обращения приложения к локальной сети.

2. Откуда возникает проблема

Наши приложения работают в облаке и доступны по публичным адресам, например:

  • https://zapp.bambit.ru
  • https://apps.bambit.ru
Когда такое приложение открывается на вашем коробочном Битрикс24, браузер выполняет запросы к вашему порталу. При этом внутри локальной сети портал обычно доступен по внутреннему адресу, например:

  • 192.168.x.x
  • 10.x.x.x
  • 172.16–31.x.x
А снаружи тот же портал может быть доступен по публичному адресу

Современные браузеры, включая Chrome и Edge, используют политику безопасности Local Network Access. Она ограничивает возможность публичного сайта обращаться к ресурсам, находящимся в локальной сети.

В результате запросы приложения к вашему порталу блокируются браузером и не доходят до сервера.

Важно: поскольку блокировка выполняется браузером, на нашей стороне менять настройки приложения или сервера не требуется. Решение находится на стороне вашего браузера или локальной сети.

3. Как убедиться, что причина именно в этом

Шаг 1. Проверить ошибку в консоли браузера
  1. Воспроизведите проблему: дождитесь зависания установки или откройте приложение, в котором не загружаются данные
  2. Нажмите F12 или Fn + F12
  3. Откройте вкладку Console (Консоль)
  4. Найдите сообщения об ошибках
На блокировку Local Network Access указывают, например:
  • упоминание access the 'local' address space или 'private'
  • сообщение об отсутствующем заголовке Access-Control-Allow-Private-Network
  • множественные запросы /rest/... с ошибкой net::ERR_FAILED
Если в консоли присутствуют такие сообщения, скорее всего, вы столкнулись именно с описанной проблемой.

Шаг 2. Проверить, по какому адресу портал доступен внутри сети

На компьютере, где возникает проблема, откройте командную строку или PowerShell и выполните команду:

nslookup адрес-вашего-портала

Например: nslookup bitrix.example.ru

Если в ответе отображается локальный (приватный) IP-адрес, например:

  • 10.x.x.x
  • 192.168.x.x
  • 172.16–31.x.x
  • 127.0.0.1
это подтверждает, что портал внутри сети определяется как локальный ресурс.

В таком случае браузер может блокировать обращения к нему со стороны нашего облачного приложения. Если вы не уверены в результате проверки, обратитесь к системному администратору

4. Как исправить проблему

Задача - сделать так, чтобы браузер не воспринимал ситуацию как обращение публичного сайта к ресурсу в локальной сети
Ниже приведены варианты решения - от наиболее подходящих для корпоративной среды до временных способов обхода. Достаточно выбрать и применить один подходящий вариант

Решение 1. Разрешить доступ через политику браузера

Подходит для компаний, где компьютерами централизованно управляет системный администратор, например через Active Directory или групповые политики. Администратор может через групповую политику Chrome разрешить нашему приложению обращаться к локальной сети.

Для этого необходимо:

  1. Найти адрес приложения, который указан в тексте ошибки после слова origin
  2. Добавить этот адрес в список разрешённых обращений к локальной сети
  3. Проверить точное название и доступность необходимой политики для используемой версии браузера на странице chrome://policy
Например, адресом приложения может быть:
  • https://zapp.bambit.ru
  • https://apps.bambit.ru
После применения политики блокировка снимается для управляемых компьютеров сотрудников

Это рекомендуемый вариант для корпоративной среды с централизованным управлением браузерами

Если централизованного управления нет, обычный пользователь самостоятельно назначить такую политику не сможет. В этом случае используйте Решение 2

Решение 2. Настроить доступ к порталу по публичному адресу внутри сети

Можно настроить внутреннюю сеть таким образом, чтобы портал изнутри открывался по тому же публичному адресу, что и снаружи

Для этого может потребоваться:
  • настроить внутренний DNS
  • убрать разделение DNS, при котором внутри сети домен указывает на локальный IP-адрес
  • при необходимости включить NAT-loopback (hairpin) на сетевом шлюзе
В результате для браузера и приложение, и портал будут находиться в публичном адресном пространстве, поэтому ограничение Local Network Access не будет срабатывать

Настройку выполняет ваш системный администратор или ИТ-специалист на стороне локальной сети

5. Временные способы завершить установку

Если необходимо прямо сейчас завершить установку, а полноценное решение планируется настроить позже, можно использовать один из временных вариантов.

Вариант 1. Временно отключить проверку в браузере
  1. Откройте в адресной строке: chrome://flags
  2. Найдите настройку Local Network Access checks
  3. В старых версиях браузера она может называться Block insecure private network requests
  4. Установите значение Disabled
  5. Перезапустите браузер
  6. Завершите установку приложения

После завершения установки рекомендуется вернуть настройку в исходное состояние

Для постоянной работы используйте Решение 1, 2 или 3.

Вариант 2. Открыть портал из внешней сети

Можно временно подключиться к порталу из внешней сети, например через мобильный интернет, если в этом случае портал определяется по публичному адресу. После этого можно завершить установку приложения

Однако при дальнейшей работе из локальной сети проблема может возникнуть снова. Поэтому этот способ подходит только как временный вариант.

6. Особый случай: устаревшая версия браузера

В старых версиях Chrome может встречаться другая ошибка - об отсутствии заголовка:

Access-Control-Allow-Private-Network

В этом случае дополнительно может помочь добавление данного заголовка на веб-сервере портала для ответов на запросы /rest/

Важно: для свежих версий браузеров этот способ уже не решает проблему, если ошибка связана с local address space

Если в консоли отображается ошибка про local address space, используйте Решение 1, 2 или 3.

Кратко

Если установка приложения на коробочном Битрикс24 зависает или данные не загружаются:

  1. Откройте консоль браузера через F12
  2. Проверьте наличие ошибок local address space, private, Access-Control-Allow-Private-Network или net::ERR_FAILED
  3. Выполните nslookup и проверьте, не определяется ли портал по локальному IP-адресу
  4. Если причина подтверждена, выберите один из вариантов:
  • Разрешить доступ через политику браузера
  • Настроить доступ к порталу по публичному адресу внутри сети
  • Использовать коробочный модуль для закрытого контура
  • Для разового завершения установки можно временно отключить соответствующую проверку в браузере