Это старая версия документа!


Публикация баз данных «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

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

Чтобы сделать редирект (перенаправление) 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.1743500000.txt.gz
  • Последнее изменение: 2025/04/01 12:33
  • fireball