Опубликовать базу 1с на веб сервере apache
Настройка веб-сервера Apache под Windows
1. Установка Apache под Windows
Первым делом необходимо скачать и установить веб-сервер. Список доступных реализаций можно найти по ссылке, а в статье будет использован самый первый из списка дистрибутивов. Он поставляется в виде zip-архива без инсталлятора.
Поэтому нужно скачать архив и разархивировать в любую удобную папку, например, C:\Apache24. 24. В названии папки указан номер версии Apache. В данном случае используется версия 2.4. При публикации информационной базы из командной строки стоит обращать на это внимание, так как с платформой поставляются отдельные библиотеки веб-компонент для версий Apache 2.2 и 2.4.
После разархивирования файла архива, откройте командую строку от имени администратора. Самый простой вариант – это открыть меню Пуск и ввести cmd. После того, как приложение будет найдено щелкнуть по нему правой кнопкой мыши и выбрать пункт меню "Запустить от имени Администратора" ("Run as Administrator").
В командной строке переходим в директорию распакованного Apache с помощью команды cd. Например:
В директории Apache вводим команду:
Это установит службу Apache, которой можно будет управлять в окне служб.
На этом установка Apache закончена. Осталось только опубликовать информационную базу и указать файлы сертификата в настройках Apache.
2. Выпуск самоподписанного сертификата Windows
В отличии от IIS, сертификат для Apache выпускается с помощью стороннего программного обеспечения OpenSSL.
По умолчанию в операционной системе Windows его нет. Поэтому его нужно скачать и установить самостоятельно. Возможные дистрибутивы OpenSSL для Windows указаны на wiki странице официального сайта.
В статье рассматривается дистрибутив по ссылке, который указан первым на странице wiki.
После скачивания дистрибутива установки необходимо его запустить.
На первой странице нужно согласиться с условиями лицензионного соглашения (переключить переключатель на "I accept the agreement") и нажать кнопку "Next".
Мастер переключится на страницу размещения дистрибутива. Если местоположение не планируется изменять, то можно оставить поле в значении по умолчанию и нажать кнопку "Next".
На следующем шаге ничего менять не нужно и можно просто нажать "Next".
Дистрибутив готов к установке. Нужно нажимать кнопку "Install" и дождаться завершения установки.
Финальный шаг – это страница пожертвований в пользу поддержки проекта. Если в планы не входит перечисление пожертвований, то необходимо снять все флажки и нажать кнопку Finish.
Дистрибутив OpenSSL установлен и теперь можно переходить к генерации сертификата.
Для этого необходимо запустить интерпретатор командной строки от имени Администратора.
Директория bin для OpenSSL была указана на втором шаге установщика.
Если пришлось добавить директорию bin в переменные окружения, то необходимо перезапустить командную строку от имени администратора. В противном случае, если ввод перешел в режим конфигурирования OpenSSL, нужно нажать сочетание клавиш Ctrl + C.
Далее нужно перейти в директорию Apache и создать папку, в которой будут располагаться файлы сертификатов.
После создания нужно перейти в созданную директорию.
После чего требуется ввести команду генерации сертификата, где вместо <SERVER> нужно подставить имя компьютера, на котором планируется размещен Apache:
Во время выполнения команды будет задано несколько вопросов. Для "Common Name (e.g. server FQDN or Your bane)" нужно также указать имя сервера. Остальные поля заполняются произвольно (кроме "Country name" - здесь можно оставить по умолчанию).
3. Публикация информационной базы Windows
Перед публикацией базы нужно отредактировать в любом удобном редакторе файл, расположенный в директории дистрибутива Apache.
Нужно в файле найти секцию VirtualHost _default_:443 и в ней заменить SSLCertificateFile и SSLCertificateKeyFile на полные пути к ключу и закрытого файла сертификата, на подготовленные заранее файлы.
После этого можно переходить к публикации базы.
Для публикации информационной базы нужно открыть конфигуратор конкретной базы от имени администратора и перейти в пункт меню "Администрирование". После этого выбрать "Публикация информационной базы".
В окне публикации указать имя публикации и по желанию определить каталог, где будут находиться настройки публикации. Его также можно оставить по умолчанию.
После этого требуется нажать кнопку "Опубликовать" и дождаться окончания операции.
4. Проверка публикации
Для проверки корректной работы нужно открыть страницу в браузере и перейти по ссылке, которая состоит из двух частей:
Рассмотрим установку Apache на WindowsXP и публикацию файлового варианта базы на веб-сервер.
Надо заметить, что при работе с веб-сервером рекомендуется использовать не файловый, а серверный вариант работы 1С:Предприятия, т.к. связка веб-сервер+файловая БД вызывает значительную деградацию производительности при числе удаленных пользователей даже от 3х человек.
Что понадобится:
Установка Apache for Windows
Публикация базы 1С на веб-сервер.
Администрирование --> публикация на веб-сервере.
Каталог – любая папка. В ней будет один маленький конфигурационный файл. Чем короче к ней путь и чем меньше в нём пробелов, тем иногда бывает меньше глюков у апача.
Нажимаем «Опубликовать», пару раз соглашаемся с перезапуском веб-сервера.
Всё! Публикация выполнена, запускаем браузер на клиенте, переходим по адресу [myhost]/[Имя].
Не будем голословны, убедимся.
Извлекаем пароль
Используя любой сниффер, можно отследить запрос к серверу, где клиент передает какие-то данные, сразу после того, как пользователь ввёл логин, пароль и нажал кнопку ОК.
Очевидно, что пароль запрятан где-то в параметре credential («удостоверение»): cred=VGltb2ZlZXZhOjEyMzMyMQ== – другие не подходят по смыслу. Однако явного пароля мы тут не видим. Так может какая-то защита от пароля всё-таки используется?
Изучим страницу авторизации под отладчиком. В строке 147 файла loader.js наблюдаем:
Переменные: name (содержащая имя пользователя - timofeeva), dvk (содержит пароль в открытом виде - 123321).
Dvm = name + “:” + dvk // теперь dvm = “timofeeva:123321”
Затем к dvm применяется функция base64encode и результат (строка «VGltb2ZlZXZhOjEyMzMyMQ==» сохраняется в dvn. В таком виде данные об авторизации и передаются на сервер. BASE64 – это метод кодирования информации, когда все символы «сужаются» до только печатных, английских. Не представляет трудности восстановить эту строку. К примеру, в 1С:Предприятие есть метод глобального контекста Base64Значение (), есть немало и онлайн-сервисов.
Воспользуемся одним из них, и получим timofeeva:123321, т.е логин и пароль, разделённые двоеточием.
Таким образом, мы убедились, что шифрование данных для авторизации не используется, и любой вредитель, имеющий возможность прослушивать траффик, может с лёгкостью узнать логин и пароль.
Поэтому переходим к следующему шагу и включаем поддеркжу SSL.
Включение поддержки SSL в Apache
Копируем файлы ssleay32.dll и libeay32.dll из C:\Program Files\Apache Software Foundation\Apache2.2\bin в C:\WINDOWS\system32.
Копируем файл openssl.cnf из C:\Program Files\Apache Software Foundation\Apache2.2\conf в C:\Program Files\Apache Software Foundation\Apache2.2\bin.
Создаем ключи. Т.к. мы создаем их сами и не подписываем в центре сертификации, при первом посещении странички браузеры будут ругаться и предупреждать о безопасности.Для этого:
В командной строке переходим в папку bin апача:
cd “C:\Program Files\Apache Software Foundation\Apache2.2\bin”
Отвечаем на вопросы, в принципе можно заполнять поля чем угодно – главное не забудьте пароль (pass phrase).
Тут понадобится пароль, указанный в предыдущем пункте.
, где последний параметр – срок истечения валидности сертификата.
Создаем папку ssl в C:\Program Files\Apache Software Foundation\Apache2.2\conf и перемещаем файлы my-server.key и my-server.cert из C:\Program Files\Apache Software Foundation\Apache2.2\bin в C:\Program Files\Apache Software Foundation\Apache2.2\conf\ssl.
и раскомментируем её (убираем знак решетки).
Вместо них вставляем следующие
Обратите внимание на последний блок со строкой, содержащей localhost:443
Запускаем редактор реестра (Пуск-выполнить – regedit), переходим в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.2.
Находим параметр ImagePath, и добавляем к его значению ключ -D ssl. Т.е. должно получиться "C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe" -D ssl -k runservice.
Всё готово. Перезапускаем apache. Открываем Apache Monitor из области уведомлений и нажимаем restart. Если все отлично, то в лог выведется Apache service has restarted.
Проверим нашу работу
Т.к. сертификат мы сгенерировали сами, необходимо подтвердить исключение безопасности. Соглашаемся со всеми запросами, и наконец запускается 1С:Предприятие.
Всё работает, причем по ssl каналу. Мы молодцы? НЕТ.
Исправляем недостатки
Как известно, уровень безопасности системы равен наименее безопасному её элементу.
Заключение
При внедрении решения на управляемых формах, при необходимости использования одной базы в территориально разделённых офисах, использование веб-сервера Apache + браузера/тонкого клиента выглядит привлекательнее, чем использование терминального сервера (Апач бесплатный) или VPN-подключения (апач проще в настройке).
Настройка веб-сервера Apache под Linux
1. Установка Apache под Linux
Установка веб-сервера и публикация информационной базы для операционной Linux будет продемонстрирована на базе Ubuntu 18.04 LTS. Все, что касается настроить информационной базы не зависит от конкретной версии дистрибутива Linux. Установка же веб-сервера может отличаться.
В данной статье не рассматривается установка и запуск Apache под всевозможные семейства операционных систем Linux. При использовании операционной системы отличной от указанной в статье следуют руководствоваться официальной документацией конкретного вашего дистрибутива.
Итак, предполагается, что есть только что установленная операционная система Ubuntu 18.04 LTS без графического интерфейса пользователя.
Перед тем как продолжить, нужно проверить доступные версии программного обеспечения дистрибутива. Выполняем команду:
В выводе результата команды можно увидеть, что доступны обновления. Рекомендуются их обновить с помощью команды (подсказка "Run ‘apt list –upgradable’"):
По завершению обновления пакетов приложений можно приступить к установке непосредственно веб-сервера.
После этого нужно выполнить команду:
Необходимо дождаться окончание выполнения команды и убедиться, что в момент установки никаких ошибок не возникло. В данном случае установка прошла без проблем.
Далее нужно проверить, что помимо самой установки, веб-сервер запустился и готов обрабатывать запросы (для данной команды использование sudo не обязательно):
В ответ можно увидеть, что состояние службы active (running). Это значит, что веб-сервер работает в штатном режим и можно переходить к публикации информационной базы с помощью командного интерпретатора bash, либо к генерации самоподписанного сертификата (если в этом есть необходимость).
2. Выпуск самоподписанного сертификата
После установки Apache в операционной системе уже должен быть установлен openssl как зависимость к дистрибутиву. Поэтому можно сразу приступить к генерации сертификата.
Первоначально нужно перейти в директорию хранилища сертификатов с помощью команды:
После чего требуется ввести команду генерации сертификата, где вместо <SERVER> нужно подставить имя компьютера, на котором планируется размещен Apache:
Во время выполнения команды будет задано несколько вопросов. Для "Common Name (e.g. server FQDN or Your bane)" нужно также указать имя сервера. Остальные поля заполняются произвольно (кроме "Country name" - здесь можно оставить по умолчанию).
3. Публикация информационной базы
Так в данной статье идет настройка публикации информационных баз без использования графического интерфейса, то публикация информационной базы будет также производиться из командного интерпретатора.
Если до этого сервер "1С:Предприятие" был уже установлен на данном компьютере, то следующие 2 шага можно пропустить. Иначе в качестве подготовительной работы нужно скачать последний доступный дистрибутив платформы и распаковать его временную директорию с помощью команды:
После разархивирования нужно инициировать процедуру установки пакетов.
Как только все готово, необходимо перейти к публикации информационной базы. Для этого требуется перейти в директорию установленной платформы и выполнить команду:
В директории платформы следом нужно выполнить команду:
где нужно заменить:
ИМЯ ПУБЛИКАЦИИ – на произвольное имя публикации
ИМЯ СЕРВЕРА – на адрес сервера 1С:Предприятие
После этого следует перейти в директорию публикаций:
С помощью любого удобного редактора нужно отредактировать файл 000-default.conf и добавить в самый конец файла следующий текст настройки:
После добавления нужно сохранить и закрыть файл и выполнить команду для включения модуля ssl для Apache:
И после этого нужно перезапустить Apache и убедиться, что ошибок не возникает.
4. Проверка публикации
Для проверки корректной работы нужно открыть страницу в браузере и перейти по ссылке, которая состоит из двух частей:
Один из сценариев публикации базы 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:
Мы должны увидеть:
* наш веб-сервер успешно установлен.
В процессе запуска службы сразу после установки может выскочить ошибка. Нужно просто запустить Apache вручную. Для этого открываем службы Windows командой:
Находим сервис с названием Apache и запускаем его:
Установка завершена, и мы можем переходить к публикации.
Публикация базы 1С
Мы можем опубликовать базу с помощью графической оболочки или утилиты webinst из командной строки. Мы рассмотрим оба варианта.
Также нужно отметить, что веб-сервер и сервер 1С могут быть на разных компьютерах.
Графический интерфейс
Запускаем 1С и выполняем вход в базу в режиме конфигуратора.
Переходим в пункты меню Администрирование - Публикация на веб-сервере:
В открывшемся окне вводим имя для базы, выбираем веб-сервер Apache и указываем каталог, куда будут помещены конфигурационные файлы для публикации базы:
* имя базы и путь могут быть любыми, но желательно, чтобы они были такими же, как имя самой базы.
Нажимаем кнопку Опубликовать — мы должны увидеть результат выполнения команды:
* если мы получим ошибку Веб серверы не обнаружены, необходимо убедиться, что служба Apache находится в состоянии «Работает».
Система нам предложит перезапустить веб-сервер, чтобы изменения вступили в силу. Однако, с веб-сервером Apache это не всегда работает корректно, поэтому просто отказываемся от перезапуска:
. и идем в службы Windows:
Находим службу Apache, кликаем по ней правой кнопкой мыши и выбираем Перезапустить:
Командная строка
В командной строке, запущенной от администратора, переходим в каталог с программой 1С, например:
cd C:\Program Files\1cv8\8.3.18.1208\bin
* обратите внимание, что в вашем случае версия будет другой. Необходимо посмотреть правильный путь и ввести его.
После вводим команду:
а) файловый вариант:
- apache24 — версия нашего веб сервера и тип самого сервера.
- wsdir — имя публикации для базы.
- dir — каталог для хранения файлов публикации.
- connstr — путь до базы. В случае хранения базы в файле пишем путь до нее. Если используется сервер 1С, то пишем его адрес и имя базы.
- confpath — путь до конфигурационного файла Apache.
Мы должны увидеть:
net stop Apache2.4 && net start Apache2.4
Запуск
Несколько баз
Если нам нужно опубликовать несколько баз на одном веб-сервере, то просто повторяем действия:
Читайте также: