Публикация базы 1С в Apache на Windows
Опубликовано: 27.12.2020
Один из сценариев публикации базы 1С — использование веб-сервера Apache на системе Windows. Это может быть актуально, если мы больше доверяем данному веб-серверу, вместо встроенного в Windows IIS. Описанные действия применимы для любой версии Windows от 7 до Server 2019. В моем примере использовались Windows Server 2012 R2, Apache 2.4, 1C 8.3.
Установка Apache
Переходим на страницу загрузки официального сайта Apache и скачиваем нужную версию программы:
* в данном примере скачивается одна из последних версий на момент обновления инструкции — 2.4.46 для системы x64 с поддержкой SSL.
Загруженный архив распаковываем в любой каталог, например, C:\Apache24.
Открываем командную строку от администратора и переходим в папку bin каталога, куда распаковали apache — в нашем случае:
Запускаем установку apache как сервиса Windows:
httpd.exe -k install
Мы должны увидеть:
Installing the 'Apache HTTP Server' service
The 'Apache HTTP Server' service is successfully installed.
Testing httpd.conf.
Errors reported here must be corrected before the service can be started.
* наш веб-сервер успешно установлен.
В процессе запуска службы сразу после установки может выскочить ошибка. Нужно просто запустить Apache вручную. Для этого открываем службы Windows командой:
Находим сервис с названием Apache и запускаем его:
Открываем браузер и переходим по адресу http://localhost — мы должны увидеть страницу приветствия Apache.
Установка завершена, и мы можем переходить к публикации.
Публикация базы 1С
Мы можем опубликовать базу с помощью графической оболочки или утилиты webinst из командной строки. Мы рассмотрим оба варианта.
Также нужно отметить, что веб-сервер и сервер 1С могут быть на разных компьютерах.
Графический интерфейс
Запускаем 1С и выполняем вход в базу в режиме конфигуратора.
Переходим в пункты меню Администрирование — Публикация на веб-сервере:
В открывшемся окне вводим имя для базы, выбираем веб-сервер Apache и указываем каталог, куда будут помещены конфигурационные файлы для публикации базы:
* имя базы и путь могут быть любыми, но желательно, чтобы они были такими же, как имя самой базы.
Нажимаем кнопку Опубликовать — мы должны увидеть результат выполнения команды:
* если мы получим ошибку Веб серверы не обнаружены, необходимо убедиться, что служба Apache находится в состоянии «Работает».
Система нам предложит перезапустить веб-сервер, чтобы изменения вступили в силу. Однако, с веб-сервером Apache это не всегда работает корректно, поэтому просто отказываемся от перезапуска:
. и идем в службы Windows:
Находим службу Apache, кликаем по ней правой кнопкой мыши и выбираем Перезапустить:
Командная строка
В командной строке, запущенной от администратора, переходим в каталог с программой 1С, например:
cd C:\Program Files\1cv8\8.3.18.1208\bin
* обратите внимание, что в вашем случае версия будет другой. Необходимо посмотреть правильный путь и ввести его.
После вводим команду:
а) файловый вариант:
webinst –publish -apache24 -wsdir Base -dir "c:\apache\htdocs\Base" -connstr "File=""D:\Bases\Base"";" -confpath "C:\Apache24\conf\httpd.conf
webinst –publish -apache24 -wsdir Base -dir "c:\apache\htdocs\Base" -connstr "Srvr=192.168.0.10;Ref=Base;" -confpath "C:\Apache24\conf\httpd.conf
- apache24 — версия нашего веб сервера и тип самого сервера.
- wsdir — имя публикации для базы.
- dir — каталог для хранения файлов публикации.
- connstr — путь до базы. В случае хранения базы в файле пишем путь до нее. Если используется сервер 1С, то пишем его адрес и имя базы.
- confpath — путь до конфигурационного файла Apache.
Мы должны увидеть:
net stop Apache2.4 && net start Apache2.4
Запуск
После публикации открываем браузер и заходим на страницу http://localhost/Base, где Base — имя, которое мы задавали при выполнении публикации. Мы должны увидеть окно загрузки 1С и предложение ввести логин и пароль.
Чтобы открывать базу с других компьютеров, необходимо использовать адрес вида http://<IP-адрес сервера с публикацией>/<Имя опубликованной базы>.
Несколько баз
Если нам нужно опубликовать несколько баз на одном веб-сервере, то просто повторяем действия:
Записки IT специалиста
Публикация баз данных 1С:Предприятие на веб-сервере Apache в Windows c защитой SSL и аутентификацией по паролю
- Автор: Уваров А.С.
- 21.05.2023
Для публикации информационных баз 1С:Предприятие на платформе Windows часто используют альтернативу штатному IIS — веб сервер Apache, который, несмотря на ряд ограничений, тоже неплохо подходит для небольших и средних установок. Одним из очевидных преимуществ Apache является его кроссплатформенность, т.е. если вы умеете настраивать данный веб-сервер на одной платформе, то без особого труда сделаете это и на другой. В данной публикации мы расскажем вам как установить и настроить Apache для публикации баз с SSL-защитой на базе сертификатов Let’s Encrypt и дополнительной аутентификацией по паролю.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Установка сервера Apache для работы с платформой 1С:Предприятие в Windows
В настоящее время официальной бинарной сборки Apache для Windows не существует, взамен предлагается скачать одну из популярных сборок. В нашем случае мы будем использовать сборку от Apache Haus, вы можете использовать и другие сборки, но некоторые настройки в них могут оказаться отличными от приведенных в статье.
При скачивании будьте внимательны, вам необходимо скачать сборку той же разрядности, что и разрядность используемой вами платформы 1С:Предприятие, на сегодня особых причин использовать 32-разрядные системы нет, поэтому отдаем предпочтение 64-разрядной платформы.
Сборка распространяется в виде архива, поэтому просто распакуйте ее в корень диска C:, чтобы пусть к папке с веб-сервером получился C:\Apache24. Для установки сервера используйте команду (требуются права администратора):
После чего вам потребуется разрешить доступ к веб-серверу по портам 80 и 443 в брандмауэре Windows, это можно сделать как в графической оснастке:
Так и при помощи PowerShell:
После чего следует с другого узла сети набрать в адресной строке браузера IP-адрес или доменное имя вашего сервера и убедиться, что порты открыты и вы видите стандартную заглушку Apache.
Следующим шагом установим платформу 1С:Предприятие, вам потребуются только компоненты 1С:Предприятие 8 и Модули расширения веб-сервера:
Отдельного лицензирования, за исключением некоторых случаев, данная установка не требует.
Публикация информационной базы 1С:Предприятие
Существует два способа публикации информационных баз, первый — более простой, при помощи Конфигуратора, но для его запуска вам потребуется клиентская лицензия 1С:Предпритяие. Какой-либо разницы между публикацией серверной или файловой базы на сервере Apache нет.
Для публикации загрузите нужную информационную базу в режиме Конфигуратора и перейдите в Администрирование — Публикация на веб-сервере. В поле Сервер — укажите Apache 2.4, поле Имя — это виртуальная директория публикации, которая потом станет частью URL, Каталог — физическое расположение публикации, которое должно находится внутри папки C:\Apache24\htdocs:
Также имейте ввиду, что для обычной работы с базой достаточно только оставить Публиковать доступ для клиентских приложений, остальное следует отключить, это упростит публикацию и уменьшит возможную поверхность атаки на нее. Принцип прост: если сервис не нужен — не публикуем.
После публикации будет предложено перезапустить веб-сервер, соглашаемся с этим предложением.
Альтернативой конфигуратору служит утилита webinst, которая располагается в директории bin установленной версии платформы, ее использование не требует наличия клиентской лицензии, для клиент-серверной базы команда публикации будет выглядеть так:
- publish — публикация базы
- apache24 — использование веб-сервера Apache 2.4
- wsdir — виртуальный каталог, аналог поля Имя в конфигураторе, по сути, представляет имя публикации
- dir — каталог с физическим расположением публикации, должен находится в C:\Apache24\htdocs
- connstr — строка подключения к базе, в нашем случае это сервер SRV-1C и база HRM-1
- confpath — путь к конфигурационному файлу Apache
Для файловой базы изменится только строка подключения к базе:
После публикации перезапускаем веб-сервер командой:
Публикация файловой базы имеет некоторые особенности: при работе через браузер вам понадобиться установить на узел с веб-сервером количество клиентских лицензий по количеству сеансов. После завершения сеанса в браузере он продолжает сохраняться на сервере в течении 20 минут на случай повторного подключения, все это время за ним сохраняется выданная лицензия.
Получение сертификата Let’s Encrypt и настройка защищенного соединения
Пожалуй, самая сложная часть нашей настройки, потому что при получении сертификата вам нужно быть предельно внимательным и правильно указать все параметры, в противном случае сертификат получить не удастся и все придется начинать заново. Для получения и обновления сертификатов мы будем использовать Windows ACME Simple (WACS), откуда нам потребуется скачать архив win-acme.vX.X.X.XXXX.x64.trimmed.zip. Распакуем его в С:\Apache24\letsencrypt.
Но не будем спешить получать сертификат, а сначала выполним некоторые подготовительные действия. Для работы с Let’s Encrypt нам понадобится доменное имя, которое должно указывать на внешний IP-адрес вашего веб-сервера. В нашем примере мы будем использовать служебный поддомен tech.host31.ru. Также помните, что изменения в системе DNS распространяются не мгновенно, а в течении некоторого времени, которое зависит от значения TTL-записи, поэтому вносите изменения в DNS заранее.
Убедившись, что ваша DNS-запись работает можно переходить к получению сертификата. Перейдем в С:\Apache24\letsencrypt и запустим и запустим wasc.exe от имени администратора. Это консольная текстовая утилита, работающая в диалоговом режиме. На каждом из этапов вам нужно либо указать выбранный пункт меню, либо ввести свое значение. Действие по умолчанию подсвечено цветным выделением и можно просто нажать Enter. Работу с утилитой начнем с пункта M: Create certificate (full options).
Далее нажимаем Enter (так как по умолчанию подсвечен нужный нам пункт 2) и вводим имя домена или список доменов, разделенных запятой.
Затем еще раз нажимаем Enter, следующий пункт меню спрашивает, как вы хотите получить сертификаты если у вас указано несколько доменов. В подавляющем большинстве случаев можно выбрать пункт по умолчанию 4: Single certificate, либо получить отдельные сертификаты на каждый домен или поддомен.
Следующим шагом выбираем 1: [http] Save verification files on (network) path и указываем корневую директорию веб-сервера C:\Apache24\htdocs.
На вопрос Copy default web.config before validation? (y/n*) отвечаем нет, это также действие по умолчанию (обозначено звездочкой, поэтому можно просто нажать Enter.
Потом выбираем 2: RSA key и 2: PEM encoded files (Apache, nginx, etc.), после чего указываем директорию для хранения сертификатов C:\Apache24\conf\ssl.
Будет предложено установить пароль на закрытый ключ, выбираем 1: None. Затем вы повторно вернетесь в вышестоящее меню, но на этот раз действие по умолчанию 5: No (additional) store steps, поэтому просто нажимаем Enter.
Следующий пункт спрашивает, какие действия нужно выполнить по получению сертификата. Нам нужно обязательно перезапустить веб-сервер, поэтому указываем 2: Start external script or program. После чего у нас есть два пути: сразу указать команду на перезапуск в настройках или запускать пакетный файл с той же самой командой.
Делая выбор нужно понимать, что если здесь у вас кроме веб-публикации не будет больше никаких служб, то можно указать команду сразу, иначе лучше использовать пакетный файл, так как это более гибко.
Выбрав вариант с пакетным файлом, создадим текстовый файл со следующим содержимым:
И сохраним его под именем: C:\Apache24\letsencrypt\Scripts\ApacheRestart.bat и укажем это значение в поле File:, если вы решили обойтись тут без скрипта, то укажите путь к исполняемому файлу Apache: C:\Apache24\bin\httpd.exe, а затем в поле Parameters: укажите -k restart.
Потом вы снова попадете в меню вышестоящего уровня, выходим из него через Enter и приступаем непосредственно к получению сертификата, после чего все нужные ключи и сертификаты окажутся в C:\Apache24\conf\ssl. Задание на продление будет добавлено в планировщик автоматически. В этом процессе не забываем указать действительный адрес почты, куда будут приходить сообщения при возникновении проблем.
Теперь перейдем к настройкам HTTPS на веб-сервере Apache, сборка от Apache Haus имеет собственные настройки, которые подключены из файла C:\Apache24\conf\extra\httpd-ahssl.conf, откроем его на редактирование.
Прежде всего обратим внимание на секцию <IfDefine ENABLE_TLS13>, так как в основном конфиге переменная установлена как Истина, то применяться будет именно этот блок настроек. Здесь указаны разрешенные протоколы и используемые шифры, настройки по умолчанию достаточно актуальны и можно использовать их без изменений. Либо установить собственные настройки, для их генерации можете использовать сайт moz://a SSL.
Затем спускаемся к секции <VirtualHost _default_:443> и меняем в ней следующие параметры:
В опции ServerName указываете полное доменное имя сервера, ниже пути к файлам сертификата и закрытого ключа, обратите внимание, что они указываются от корневой папки веб-сервера, т.е. относительно C:\Apache24.
Сохраняем содержимое файла и выходим из него, после чего в основном конфигурационном файле C:\Apache24\conf\httpd.conf находим секцию с подключенными модулями и убеждаемся, что все указанные ниже строки раскомментированы:
Затем сразу после строки:
Что обеспечит перенаправление всех HTTP запросов, кроме запросов на продление сертификата, на HTTPS порт.
Проверяем конфигурацию и, при отсутствии ошибок, перезапускаем веб-сервер:
Открываем нашу публикацию и убеждаемся, что она автоматически перенаправляется на защищенную версию. Как видим, в нашем случае используется протокол TLS v1.3, совершенная прямая секретность на базе эллиптической кривой Curve25519 и шифр ChaCha20-Poly1305.
В целом каких-либо сложностей при получении сертификата нет, но сам процесс достаточно длительный и требующий внимательного и кропотливого указания настроек. Но это процесс разовый, далее все будет работать автоматически.
Настройка дополнительной аутентификации по паролю
У нас нет основания сомневаться во встроенном механизме аутентификации 1С:Предприятия, во всяком случае в онлайн-сервисах дополнительной аутентификации не предусмотрено, но есть слабое место — пользователи. Во многих базах могут использоваться простые пароли или не использоваться вообще, часть таких паролей могут использоваться скриптами и средствами автоматизации, поэтому взять и установить сразу всем сложные пароли будет не так-то просто.
Ситуация усугубляется, если администрирование 1С выполняют другие сотрудники, они вполне могут, пойдя на поводу пользователей снова установить им слабые пароли, что сильно снижает безопасность собственного механизма аутентификации. Поэтому мы пойдем другим путем и установим дополнительную аутентификацию на уровне веб-сервера, тут уже точно без нас никто пароль не изменит. Основная его цель — оградить собственный механизм аутентификации 1С от доступа всех желающих, которым достаточно будет просто узнать ссылку.
Веб-сервер Apache использует собственную базу пользователей, поэтому займемся ее созданием. Первого пользователя заводим командой:
Ключ -с предписывает создать указанный файл или перезаписать, если он существует, ключ -B указывает использовать для шифрования пароля более надежный, чем MD5 алгоритм bcrypt. После выполнения команды будет интерактивно запрошен пароль, он должен соответствовать всем требованиям сложности, в противном случае теряется весь смысл всей этой затеи.
Теперь создадим в директории с публикацией, в нашем случае C:\Apache24\htdocs\hrm-1 файл .htaccess со следующим содержимым:
Первая строка задает наименование области безопасности, можете вписать туда все что угодно, вторая включает Basic-аутентификацию. Затем указывается политика аутентификации и путь к файлу паролей, valid-user обозначает что доступ получит любой аутентифицированный пользователь. Если нужно указать конкретные учетные записи, то строку нужно изменить следующим образом:
Сохраняем файл, перезапуск веб-сервера при этом не требуется.
Проверяем, если все сделано правильно — будет запрошен логин и пароль.
При работе через браузер достаточно запомнить пароль, а при работе через тонкий клиент пользователю придется вводить учетные данные два раза, первый раз аутентифицироваться на веб-сервере, а только уже потом средствами 1С.
Запомнить пароль там не представляется возможным, и это может вызывать недовольство пользователей, поэтому укажем в свойствах базы дополнительные параметры запуска:
Где ключ /WSN определяет пользователя веб-сервера, а ключ /WSP — пароль.
Теперь платформа будет проходить первый этап аутентификации автоматически.
Как видим, настроить безопасную публикацию информационных баз 1С:Предприятие на веб-сервере Apache в Windows достаточно не сложно. А какой именно из веб-серверов выбрать уже решать вам.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Веб — сервер Apache для 1С 8.3. Руководство по установке и публикации
Использование веб – сервера Apache для публикации информационных баз на платформе 1С 8.3, позволяет значительно повысить быстродействие файловых информационных баз на платформе 1С 8.3 в локальной сети, а так же получить доступ к базе через интернет или VPN.
Установка веб — сервера Apache 2.4
Проверьте, что у вас с платформой 1С 8.3 установлен «Модуль расширения веб – сервера», если не установлен — установите. Я рекомендую использовать 64 – битную платформу, всегда, когда это возможно.
Веб — сервер Apache для 1С 8.3.
Заходим на сайт https://www.apachelounge.com/download/ и скачиваем архив Apache с той разрядностью, которая у вас установлена платформа 1С.
1с apache 2.4
Извлекаем папку Apache24 в корень диска C:\
Установка веб — сервера 1с apache
Через командную строку, запущенную от имени администратора выполняем команду: C:\Apache24\bin\httpd.exe -k install
Там же в командной строке запускаем службу командной: NET START Apache2.4 или перезапускаем компьютер
Открываем в браузере адрес http://localhost/ , если вы увидели надпись «It works!», значит все работает.
В брандмауре Windows (или в вашем фаерволе) разрешаем входящее подключение к 80 порту, для доступа с других компьютеров.
Публикация базы 1С на веб — сервере Apache
Запускаем конфигуратор, той базы, которой мы хотим опубликовать от имени администратора.
Отрываем пункт «Администрирование – Публикация на веб — сервере…»
веб — сервер Apache для 1С 8.3. Рукводоство по установке и публикации
- Указываем имя информационной базы латиницей и без пробелов, например DemoRetail
- В поле Каталог, указываем любую пустую папку
- Не нужные флажки можно снять, это повысит безопасность системы, для доступа через веб — сервера достаточно флажка «Публиковать доступ для клиентских приложений»
- Нажимаем кнопку «Опубликовать» и соглашаемся с перезапуском службы
Пробуем запустить информационную базу через браузер http://localhost/DemoRetail , для доступа с других компьютеров, слово localhost – надо заменить на ваш IP адрес или имя компьютера.
публикация базы 1с apache
Публикация базы на сервере Apache. Установка веб-сервера
Веб-сервер — программа, которая получает и обрабатывает запросы от пользователя.
Apache – один из самых популярных веб-серверов. Позволяет использовать СУБД для авторизации, преобразовывать данные об ошибках.
Для того чтобы скачать дистрибутив Apache, необходимо перейти на сайт: apachelounge.com/download/ и выбрать подходящую (последнюю) версию. В нашем случае это 2.4.43.
Извлекаем данные из скачанного дистрибутива Apache 2.4 binaries VS16 «httpd-2.4.43-win64-VS16».
В корне диска «С» создаем репозиторий Apache24 и копируем в него файлы скачанной архивной папки Apache24.
Переходим в папку «conf» (находится в «C:\Apache24\») и при помощи текстового редактора (блокнот, wordpad) производим открытие файла «httpd.conf».
Настраивается Apache через текстовые файлы.
Ключевые свойства будут функционировать в большинстве случаев по умолчанию.
В нашем случае необходимо изменить несколько параметров.
Для запуска local web-сервера открываем файл «httpd.conf» и изменяем параметры:
ServerAdmin – e-mail админа (ваш email).
→ Дополнительные параметры системы (additional system parameters).
→ Переменные среды (environment variable).
Скачиваем с support.microsoft.com/ru-ru/help/2977003 и запускаем x64: vc_redist.x64.exe.
После установки компоненты С++ необходимо под админом произвести запуск командной строки.
В Windows 10: Пуск → cmd
Изменить папку на C:\Apache24\bin и запустить: «httpd.exe -k install».
Пуск → Панель управления → Администрирование
В Apache 2.4 нажимаем «Запустить»
И устанавливаем тип запуска «Автоматически».
В браузере переходим по адресу: localhost.
Видим страницу приветствия: It Works!
Установка произведена успешно.
2. Публикация базы на сервере Apache
Для публикации базы на сервере Apache необходимо произвести запуск программы 1С:Предприятие 8 в режиме конфигуратора от имени администратора.
Далее в режиме конфигуратора переходим в раздел «Администрирование» → «Публикация на веб-сервере 1С».
В окне «Публикация на веб-сервере 1С» заполняем имя и каталог, куда будут помещены данные.
Далее жмем «Опубликовать».
На запрос о перезапуске веб-сервера нажимаем «Да»:
Для проверки доступности через браузер вводим адрес опубликованной базы: localhost/Apache
Для доступа с других компьютеров ЛС вводим в строке браузера 192.168.0.102/ Apache