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


  • Контрагенты по ИНН заполняться не хотят;
  • Банки и валюты не загружаются;
  • Всякие прочие системы, активно использующие обращения к интернет ресурсам, выдают непонятную ошибку.

Например, такую:



Первое, что приходит в голову: 1С опять все разломали! Не работает!!!
Но если на секунду задуматься, "не прошел проверку", что это может значить?


Статья написана в два блока:


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

Итак, первое на что стоит обратить внимание: такая ошибка возникает только если 1С пытается установиться соединение по протоколу https, т.е. с установкой защищенного соединения.


Что понимается под защищенным соединением?

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


При чем здесь проверка?

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


Ну как тогда кому-то доверять?

Для этого умные люди придумали PKI, это такой способ организации доверия, когда мы не доверяем никому, кроме тех, кто изначально у нас в списке доверенных. А список доверенных жестко зафиксирован, например, в настройках операционной системы или браузера (а некоторые программы имеют свой личный список доверенных).


Доверенные центры являются удостоверяющими центрами и могут подтвердить, что ты — это ты, а, к примеру, яндекс — это яндекс. Для подтверждения выдают сертификат.


Если кто-то попытается выдать себя за яндекс — то проверяя его сертификат мы обнаружен, что либо сертификат не удостоверен (ни один из удостоверяющих центров его не подтвердил), либо сертификат устарел (в целом сертификат выдается на 1-3 года и его надо вовремя переиздавать), либо такого сертификата вовсе нет.



Так вот что значит не прошел проверку!

Да, это значит, что нам не удалось выполнить проверку сертификата того, с кем мы пытались связаться.


Но как это может быть? Ведь я открываю сайт — вот он, а 1С вдруг ругается...

Начиная с версии 8.3.8 1С выполняет проверку, используя те же сертификаты, что установлены в Windows. Это значит, что проблема скорее всего все-таки не в 1С, а в том, каким образом 1С подключается к интернету.


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


Я вижу проблему только в 1С, все остальное работает!

Попробуйте открыть проблемную ссылку (она будет указана в сообщении об ошибке) с помощью браузера Internet Explorer (другие браузеры, например Mozilla используют свое хранилище сертификатов, а нам нужно проверить хранилище сертификатов Windows).


Microsoft Edge, например, будет ругаться так:



Internet Explorer подсветит строку адреса и сообщит об ошибке сертификата



Google Chrome тоже сообщит об ошибке перечеркнув в адресе https.



Вы меня совсем напугали, что мне делать и почему все небезопасно? Меня прослушивают?

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


Но на практике чаще всего проблема из-за неправильно настроенного способа раздачи интернета.


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


Да, у меня интернет настроен через прокси! Как настроить правильно?

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


Во вторых нужно настроить 1С на передачу через прокси. А это сильно по-разному делается для разных режимов работы информационной базы.


Если следовать инструкции дальше сложно — лучше обратиться к специалисту.


Варианты настройка прокси сервера в 1С


Итак, в первую очередь надо понимать, что 1С может обращаться к интернет ресурсам на клиенте и на сервере. Но чаще всего — на сервере.


  • при обращении с клиента следует устанавливать прокси на клиентском компьютере
  • при обращении с сервера — на сервере

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


1С может работать во множестве разных режимов:


  1. В файловом варианте с подключением к сетевому диску. В этом случае сервер так же будет являться клиентским компьютером.
  2. в файловом варианте через веб-сервер. В этом случае прокси сервер надо задавать на веб-сервере.
  3. в клиент-серверном варианте (в.т.ч через веб сервер) — надо настраивать сервер 1С (в этот же вариант попадет и работа в модели сервиса, но я думаю те, кто разворачивают у себя сервис, способны решить эту проблему самостоятельно).

Источники настроек прокси сервера настраиваются по приоритету:


  1. Из настроек информационной базы.
    1.1. Для клиентского компьютера и для файлового режима работы в параметрах пользователя.
    1.2. Для серверных информационных баз в настройках сервера "Администрирование \ Общие настройки \ Параметры серверной информационной базы \ Параметры доступа в интернет".
  2. Если в настройках ИБ установлен режим "Использовать системные настройки прокси-сервера", то платформа попытается получить настройки из файла inetcfg.xml из каталога конфигурационных файлов (например, C:\Program Files (x86)\1cv8\conf)
  3. При отсутствии файла в Windows настройки берутся из настроек Internet Explorer (Панель управления \ Настройки браузеров \ Соединение \ Настройки LAN \ Использовать прокси сервер).


Для linux и mac из переменных окружения см. документацию по inetcfg.xml


Необходимо обязательно помнить, что настройки должны быть установлены для пользователя Windows, от имени которого запускается сервер 1С или стартует пул IIS или работает Apache.


Если все настройки прокси выставлены то их можно проверить с помощью простенького инструмента, который я собрал.


Скачать с github


А если по-хорошему — не используйте прокси-серверы… :)


Ну настроил я прокси, интернет работает, но все равно постоянно возникает ошибка, что делать?

Тут нужно знать некоторую особенность работы удостоверяющего центра, он поставляет список отозванных сертификатов, это те сертификаты, которые были выданы каким-то лицам, а потом их признали недействительными. Этот список обновляется через интернет.


Получается вот такая загвоздка: чтобы установить защищенное соединение нужно обновить список отозванных сертификатов… из интернета…


Но как дать возможность эти отозванные сертификаты обновить?

Для Windows достаточно настроить прокси в настройках Internet Explorer. Для той учетной записи, под которой будет работать сервер 1С.


У меня вообще нет никаких прокси-серверов, но все равно возникает ошибка!

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


Чаще всего эта проблема возникает при развертывании собственного центра сертификации, ну, в этом случае надо искать проблему локально и внимательнее читать документацию и руководство по развертыванию.


Как понять что добавить в белый список?

certutil.exe

Комментарии (21)


  1. BloodElf
    25.01.2018 08:51

    А покажите какой сертификат выдается для ya.ru
    Не происходид ли подмены?


    1. ZEEGIN Автор
      25.01.2018 10:15

      Естествено происходит подмена. Я ее сделал как раз для того, чтобы снять эти скриншоты. Без подмены, собственно говоря, повода писать статью не было бы)


      1. BloodElf
        25.01.2018 22:37
        -1

        Тогда я не совсем понимаю смысл данной статьи :(
        Показать что 1С умеет ходить через прокси сервер?


  1. gmini
    25.01.2018 11:01

    Первое, что нужно проверять при возникновении таких ошибок — корректность даты/времени на компьютере.


  1. LoadRunner
    25.01.2018 11:02

    А если по-хорошему — не используйте прокси-серверы… :)
    Вы этот совет с позиции кого даёте-то? Ситуации разные бывают. Кэширующие прокси сейчас бесполезны, да, так как большая масса сайтов на https. Но за разъяснение тонкостей, где же в 1С настройки прокси — спасибо.


    1. ZEEGIN Автор
      25.01.2018 11:31

      Вы этот совет с позиции кого даёте-то?

      Я считаю, что если цель просто раздать интернет — то маршрутизация на сетевом уровне кажется более эффективной, чем на прикладном.


      Но с другой стороны, если требуется анализ трафика для DLP, просматривать http на уровне ядра значительно проще, чем делать то, что называется "Reassemble fragmented IP datagrams + Reassemple TCP segments"))


  1. gmini
    25.01.2018 11:28

    Кэширующие прокси сейчас бесполезны, да, так как большая масса сайтов на https.
    Это почему еще? В условиях предприятия, когда можно свой сертификат всем клиентам установить, очень даже полезны.


    1. LoadRunner
      25.01.2018 13:26

      Браузеры такое поведение за MitM не воспринимают?


      1. ZEEGIN Автор
        25.01.2018 13:39

        Если в политике домена распространение сертификата настроено, то браузер покажет зеленый статус, а при открытии сертификата можно будет увидеть, что подписал его сервер компании, а не какой-нибудь VerySign. Но есть всякие плагины, которые проверяют подписантов по своим спискам. Firefox вообще не доверяет списку сертификатов Windows и использует свой список, но политикой домена и в него свой сертификат установить можно. если захотеть.


        1. LoadRunner
          25.01.2018 13:46

          Это если очень-очень надо кэшировать, то да. Ну или https пускать через прокси надо — приходится так танцевать. В обычном среднестатистическом случае всё это и не требуется, обычно ограничивается логированием трафика.


          1. ZEEGIN Автор
            26.01.2018 12:51

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


            Чаще кэширующий прокси на практике сейчас применяется не со стороны клиента для экономии трафика, а со стороны сервера, как реверс прокси для разгрузки рабочих процессов при балансировке нагрузки. С тем же 1С можно спокойно до инстанса апача поставить nginx который будет кэшировать ресурсные файлы (главное не переборщить и выбирать статичные ресурсы) и снимать нагрузку обращения к БД 1С и экономить процессорное время работы апача и сервера 1С.


  1. spxnezzar
    25.01.2018 16:55
    -1

    Я не совсем понял. А зачем 1С вообще к ya.ru обращается?


    1. ZEEGIN Автор
      25.01.2018 18:31

      1С будет стучаться туда, куда разработчик конфигурации скажет стучаться. Я для примера сделал запрос на ya.ru. Суть — текст сообщения и поведение, а не само обращение. Такое же поведение будет если постучать в нологую или сбербанк.


      1. Frankenstine
        26.01.2018 10:28

        Тут скорее сама 1С притянута за уши, так как первым делом в описываемом случае юзеры станут ругаться «почта не открывается» (или «вконтакте не работает» =)). Обращения из 1С в тырнет не так уж и часто применяются.


        1. mayorovp
          26.01.2018 10:34

          Как вариант — на компах пользователей нужный сертификат стоит — а вот про терминальный сервер с 1С забыли. Потому что его совсем другой человек настраивает.


          1. ZEEGIN Автор
            26.01.2018 12:26

            А что меняется с точки зрения варианта разворачивания 1С при терминвльном сервере? Просто клиентом будет не компьютер пользователя а сеанс на терминальном сервере. Все остальное так же. Впринципе эти строки можно добавить в статью до текста о вариантах развертки.


            1. mayorovp
              26.01.2018 12:27

              Потому что его совсем другой человек настраивает.


              1. ZEEGIN Автор
                26.01.2018 13:24

                Внес правку, спасибо!


        1. vasyzpetya
          26.01.2018 10:57

          Да как же не часто. Посмотрите самый заголовок статьи, там описаны самые часты и основные кейсы.
          А еще на 1С есть несколько вариантов АРМов для транспортной логистики и там 1С ходит в апи гугл или яндекс.карт… и т.д и т.п
          Короче, возможности ограничиваются только фантазией разработчиков.


      1. spxnezzar
        26.01.2018 10:54

        Просто заголовок статьи с кейсом о кривом сертификате яндекса у меня в голове совсем не сошёлся. Понятно что в конфигурации может был написано что угодно, но меня больше напрягло не то что сертификат кривым оказался, а то что обращение именно на ya.ru, что само по себе повод задуматься о том что проблемы в окружении. Если бы указали сайт банка и налоговой, было бы более наглядно. А вообще 1С не единственное приложение которое может огрести при таком раскладе. А вариант с терминальным сервером, описанный ниже это прям мой кейс.
        Как вариант вместо прокси для фиксированных конфигураций можно сделать следующее:
        1. Определить куда именно ходит 1С
        2. Настроить прокси порт на шлюзе или любом компьютере, ходящим мимо прокси.
        3. В конфигурации заменить адреса хостов обмена данными на наш «транзитный» сервер.

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


        1. ZEEGIN Автор
          26.01.2018 12:29

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