Публикация баз данных «1С:Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2012/2016

По мотивам http://tavalik.ru/nastrojka-veb-dostupa-k-bd-1spredpriyatie-na-iis и еще некоторых собранных заметок

Для публикации требуются следующие шаги:

  • Установка веб-сервера IIS
  • Установка веб-компонентов 1С
  • Настройка прав пользователей
  • Публикация базы 1С
  • Настройка IIS
  • Настройка сертификата Let's Ecrypt (опционально)

IIS устанавливаем традиционно через Диспетчер серверов (Server Manager). Должны быть установлены следующие компоненты:
Установка веб-сервера IIS

Устанавливаем веб-сервер Internet Information Server, который по умолчанию входит в поставку Microsoft Windows Server. При установке обязательно выбираем компоненты:

  • Общие функции HTTP (Common HTTP Features)
    • Статическое содержимое (Static Content)
    • Документ по умолчанию (Default Document)
    • Обзор каталогов (Directory Browsing)
    • Ошибки HTTP (HTTP Errors)
  • Разработка приложений (Application Development)
    • ASP
    • ASP.NET 3.5
    • Расширяемость .NET 3.5 (.NET Extensibility 3.5)
    • Расширения ISAPI (ISAPI Extensions)
    • Фильтры ISAPI (ISAPI Filters)
  • Исправление и диагностика (Health and Diagnostics)
    • Ведение журнала HTTP (HTTP Logging)
    • Монитор запросов (Request Monitor)
  • Средства управления (Management Tools)
    • Консоль управления IIS (IIS Management Console)

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

На этот же сервер, где развернут веб-сервер IIS, устанавливаем «1С:Предприятие» (32-разрядные компоненты) обязательно выбрав при установке компоненты:

  • 1С:Предприятие
  • Модули расширения веб-сервера

Если планируется настроить 64-разрядный модуль расширения веб-сервера, то необходимо дополнительно запустить программу установки 64-разрядного сервера и установить компоненту:

  • Модуль расширения веб-сервера

Теперь необходимо установить необходимые права на ключевые папки, используемые при работе веб-доступа к базам данных «1С:Предприятие». Для каталога хранения файлов веб-сайтов, опубликованных на веб-сервере (по умолчанию C:\inetpub\wwwroot\ ) необходимо дать полные права группе «Пользователи» (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства» (Properties).

Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:\Program Files (x86)\1cv8\ для 32-разрядного модуля расширения и C:\Program Files\1cv8\ для 64-разрядного) группе IIS_IUSRS.

Запускаем от имени Администратора (Run as Administrator) «1С:Предприятие» в режиме Конфигуратор для той базы, которую требуется опубликовать. В меню выбираем «Администрирование» —> «Публикация на веб-сервере…»

Откроется окно настройки свойств публикации на веб-сервере. Основные поля необходимые для публикации уже заполнены по умолчанию:

  • Имя виртуального каталога — имя по которому будет происходить обращение к база данных на веб-сервере. Может состоять только из символов латинского алфавита.
  • Веб-сервер — выбирается из списка найденных на текущем компьютере веб-серверов. В нашем случае это Internet Information Services.
  • Каталог — физическое расположение каталога, в котором будут располагаться файлы виртуального приложения.
  • Соответствующими флагами можно указать типы клиентов для публикации, а также указать возможность публикации Web-сервисов. В расположенной ниже таблице можно отредактировать список Web-сервисов которые будут опубликованы, а также в столбце «Адрес» изменить синоним, по которому будет происходить обращение к данному Web-сервису.
  • Также для веб-сервера IIS есть возможность указать необходимость выполнения аутентификации на веб-сервере средствами ОС, установив соответствующий флаг.

Выбрав необходимые настройки публикации нажимаем «Опубликовать».

Включаем поддержку 32-х разрядных приложений: Пулы приложений (Application Pools) → DefaultAppPool → Дополнительные параметры (Advanced Settings) → Разрешены 32-разрядные приложения (Enable 32-Bit Applications) установить в True

Для каждой опубликованной базы необходимо проверить настройки Сопоставления обработчиков (Handler Mappings). 1C Web-service Extension должен указывать на текущую версию 1С, например C:\Program Files (x86)\1cv8\8.3.12.1469\bin\wsisapi.dll и если была установлена новая конфигурация - данные настройки необходимо скорректировать.

Ошибка говорит, что проблема в настройках безопасности сервера IIS. Для того, чтобы обойти общие настройки безопасности, необходимо отредактировать файл публикации «web.config», который находится в каталоге с вашей публикацией, а именно:

1. Добавить параметр в раздел system.webServer:

<security>
  <requestFiltering allowDoubleEscaping="true" />
</security>

2. Добавить параметр в раздел configuration

<system.web>
 <pages validateRequest="false" />
 <httpRuntime requestPathInvalidCharacters="" />
</system.web>

и перезапустить IIS. Функциональность будет полная. После повторной переопубликации базы из 1С изменения нужно будет вносить заново.

Что должно быть подготовлено заранее:

  • Отдельное доменное имя (например mobile.site.ru) и правильно настроенный DNS
  • Открыты (или проброшены) порты 80 (HTTP) и 443 (HTTPS) на вашем роутере до сервера с работающим IIS
  • В 1С проведена публикация сайта (Конфигуратор / Администрирование / Публикация на веб-сервере, включить галки «Публиковать доступ для клиентских приложений», «Публиковать Web-сервисы» (MAExchange), «Публиковать дистрибутив тонкого клиента» (если нужно, в этом случае указать расположение файлов) и выключить остальные галки / Опубликовать. На вопрос о перезапуске IIS ответить утвердительно.

Загружаем последний релиз с сайта https://github.com/win-acme/win-acme/releases/ и распаковываем куда-нибудь, например в C:\inetpub\letsencrypt

Запускаем cmd с правами Администратора:

И переходим в папку, куда распаковали win-acme:

cd c:\inetpub\letsencrypt

Запускаем в cmd файл wacs.exe, при первом запуске вводим адрес e-mail (для уведомлений об истечении сртификата) и соглашаемся с условиями использования:

Вводим «N», нажимаем Enter.

Выбираем наш опубликованный сайт mobile.site.ru, ждем некоторое время чтобы сертификат успешно установился.

Проверяем полученный сертификат: открываем наш сайт mobile.site.ru - браузер не должен ругаться на сертификат. Так же можно проверить при помощи какого-нибудь сервиса, например https://www.sslshopper.com/ssl-checker.html

В Tash Scheduler'е автоматически добавляется ежедневная задача для продления сертификата, поэтому его не нужно обновлять руками.

Готово, можно пользоваться.

Чтобы сделать редирект (перенаправление) HTTP на HTTPS нужно установить модуль Microsoft URL Rewrite Module:

  • Качаем последний релиз со страницы проекта https://www.iis.net/downloads/microsoft/url-rewrite
  • Убедиться, что в настройках сайте не включена опция обязательного использования SSL (Require SSL)
  • Визуальная настройка делается через оснастку IIS, в свойствах сервера (или сайта, смотря куда требуется подключить) открываем «URL Rewrite», добавляем правило (Add Rule(s) и заполняем поля:
    • Выбираем Inbound Rules / Blank Rule
    • Name: HTTP to HTTPS Redirect
    • Pattern: (.*)
    • Разворачиваем Conditions, добавляем (Add):
      • Condition Input: {HTTPS}
      • Pattern: ^OFF$
      • Ignore Case: включено
    • Action Properties:
      https://{HTTP_HOST}/{R:1}
    • Append query string: включено
    • Применяем (Apply) и пробуем
  • Второй вариант: отредактировать файл web.config, в раздел <system.webServer> добавить правило:
    <rewrite>
    <rules>
    <rule name="HTTP to HTTPS Redirect" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
    </rules>
    </rewrite>
  • software/1c/1c-iis-setup.txt
  • Последнее изменение: 2025/04/01 12:35
  • fireball