Опубликовано:
Используемые термины: 1С, Apache, Windows.
Один из сценариев публикации базы 1С — использование веб-сервера Apache на системе Windows. Это может быть актуально, если мы больше доверяем данному веб-серверу, вместо встроенного в Windows IIS. Описанные действия применимы для любой версии Windows от 7 до Server 2019. В моем примере использовались Windows Server 2012 R2, Apache 2.4, 1C 8.3.
Установка веб-сервера Apache
Публикация базы 1С
В графическом интерфейсе
В командной строке
Запуск опубликованной базы
Публикация нескольких баз
Другие инструкции по 1С
Установка Apache
Переходим на страницу загрузки официального сайта Apache и скачиваем нужную версию программы:
* в данном примере скачивается одна из последних версий на момент обновления инструкции — 2.4.46 для системы x64 с поддержкой SSL.
Загруженный архив распаковываем в любой каталог, например, C:\Apache24.
Открываем командную строку от администратора и переходим в папку bin каталога, куда распаковали apache — в нашем случае:
cd C:\Apache24\bin
Запускаем установку 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 командой:
services.msc
* другие варианты открыть службы Windows.
Находим сервис с названием Apache и запускаем его:
Открываем браузер и переходим по адресу http://localhost — мы должны увидеть страницу приветствия Apache.
Установка завершена, и мы можем переходить к публикации.
Публикация базы 1С
Мы можем опубликовать базу с помощью графической оболочки или утилиты webinst из командной строки. Мы рассмотрим оба варианта.
Также нужно отметить, что веб-сервер и сервер 1С могут быть на разных компьютерах.
Графический интерфейс
Запускаем 1С и выполняем вход в базу в режиме конфигуратора.
Переходим в пункты меню Администрирование — Публикация на веб-сервере:
В открывшемся окне вводим имя для базы, выбираем веб-сервер Apache и указываем каталог, куда будут помещены конфигурационные файлы для публикации базы:
* имя базы и путь могут быть любыми, но желательно, чтобы они были такими же, как имя самой базы.
Нажимаем кнопку Опубликовать — мы должны увидеть результат выполнения команды:
* если мы получим ошибку Веб серверы не обнаружены, необходимо убедиться, что служба Apache находится в состоянии «Работает».
Система нам предложит перезапустить веб-сервер, чтобы изменения вступили в силу. Однако, с веб-сервером Apache это не всегда работает корректно, поэтому просто отказываемся от перезапуска:
… и идем в службы Windows:
services.msc
Находим службу 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
б) сервер 1С:
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.
Мы должны увидеть:
Publication successful
Перезапускаем apache:
net stop Apache2.4 && net start Apache2.4
Публикация завершена.
Запуск
После публикации открываем браузер и заходим на страницу http://localhost/Base, где Base — имя, которое мы задавали при выполнении публикации. Мы должны увидеть окно загрузки 1С и предложение ввести логин и пароль.
Чтобы открывать базу с других компьютеров, необходимо использовать адрес вида http://<IP-адрес сервера с публикацией>/<Имя опубликованной базы>.
Несколько баз
Если нам нужно опубликовать несколько баз на одном веб-сервере, то просто повторяем действия:
- Заходим в нужную базу 1С под конфигуратором.
- Переходим в окно публикации базы.
- Вводим данные, необходимые для публикации.
- Перезапускаем Apache.
- Проверяем работу.
Читайте также
Эти инструкции также могут показаться вам интересными:
1. Установка сервера 1С + PostgreSQL на Linux Ubuntu
2. Оптимизация MS SQL Server для 1С:Предприятие
Для публикации информационных баз 1С:Предприятие на платформе Windows часто используют альтернативу штатному IIS — веб сервер Apache, который, несмотря на ряд ограничений, тоже неплохо подходит для небольших и средних установок. Одним из очевидных преимуществ Apache является его кроссплатформенность, т.е. если вы умеете настраивать данный веб-сервер на одной платформе, то без особого труда сделаете это и на другой. В данной публикации мы расскажем вам как установить и настроить Apache для публикации баз с SSL-защитой на базе сертификатов Let’s Encrypt и дополнительной аутентификацией по паролю.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Установка сервера Apache для работы с платформой 1С:Предприятие в Windows
В настоящее время официальной бинарной сборки Apache для Windows не существует, взамен предлагается скачать одну из популярных сборок. В нашем случае мы будем использовать сборку от Apache Haus, вы можете использовать и другие сборки, но некоторые настройки в них могут оказаться отличными от приведенных в статье.
При скачивании будьте внимательны, вам необходимо скачать сборку той же разрядности, что и разрядность используемой вами платформы 1С:Предприятие, на сегодня особых причин использовать 32-разрядные системы нет, поэтому отдаем предпочтение 64-разрядной платформы.
Сборка распространяется в виде архива, поэтому просто распакуйте ее в корень диска C:, чтобы пусть к папке с веб-сервером получился C:\Apache24. Для установки сервера используйте команду (требуются права администратора):
C:\Apache24\bin\httpd.exe -k install
После чего вам потребуется разрешить доступ к веб-серверу по портам 80 и 443 в брандмауэре Windows, это можно сделать как в графической оснастке:
Так и при помощи PowerShell:
New-NetFirewallRule -DisplayName "Apache 2.4" -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 80,443
После чего следует с другого узла сети набрать в адресной строке браузера IP-адрес или доменное имя вашего сервера и убедиться, что порты открыты и вы видите стандартную заглушку Apache.
Следующим шагом установим платформу 1С:Предприятие, вам потребуются только компоненты 1С:Предприятие 8 и Модули расширения веб-сервера:
Отдельного лицензирования, за исключением некоторых случаев, данная установка не требует.
Публикация информационной базы 1С:Предприятие
Существует два способа публикации информационных баз, первый — более простой, при помощи Конфигуратора, но для его запуска вам потребуется клиентская лицензия 1С:Предпритяие. Какой-либо разницы между публикацией серверной или файловой базы на сервере Apache нет.
Для публикации загрузите нужную информационную базу в режиме Конфигуратора и перейдите в Администрирование — Публикация на веб-сервере. В поле Сервер — укажите Apache 2.4, поле Имя — это виртуальная директория публикации, которая потом станет частью URL, Каталог — физическое расположение публикации, которое должно находится внутри папки C:\Apache24\htdocs:
Также имейте ввиду, что для обычной работы с базой достаточно только оставить Публиковать доступ для клиентских приложений, остальное следует отключить, это упростит публикацию и уменьшит возможную поверхность атаки на нее. Принцип прост: если сервис не нужен — не публикуем.
После публикации будет предложено перезапустить веб-сервер, соглашаемся с этим предложением.
Альтернативой конфигуратору служит утилита webinst, которая располагается в директории bin установленной версии платформы, ее использование не требует наличия клиентской лицензии, для клиент-серверной базы команда публикации будет выглядеть так:
webinst -publish -apache24 -wsdir hrm-1 -dir "C:\Apache24\htdocs\hrm-1" -connstr "Srvr=SRV-1C;Ref=HRM-1;" -confpath "C:\Apache24\conf\httpd.conf"
Разберем ключи:
- publish — публикация базы
- apache24 — использование веб-сервера Apache 2.4
- wsdir — виртуальный каталог, аналог поля Имя в конфигураторе, по сути, представляет имя публикации
- dir — каталог с физическим расположением публикации, должен находится в C:\Apache24\htdocs
- connstr — строка подключения к базе, в нашем случае это сервер SRV-1C и база HRM-1
- confpath — путь к конфигурационному файлу Apache
Для файловой базы изменится только строка подключения к базе:
webinst -publish -apache24 -wsdir hrm-2 -dir "C:\Apache24\htdocs\hrm-2" -connstr "File=""C:\1C_Bases\HRM-2"";" -confpath "C:\Apache24\conf\httpd.conf"
После публикации перезапускаем веб-сервер командой:
C:\Apache24\bin\httpd.exe -k restart
Публикация файловой базы имеет некоторые особенности: при работе через браузер вам понадобиться установить на узел с веб-сервером количество клиентских лицензий по количеству сеансов. После завершения сеанса в браузере он продолжает сохраняться на сервере в течении 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\bin\httpd.exe -k restart
И сохраним его под именем: 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 tech.host31.ru
SSLCertificateFile "${SRVROOT}/conf/ssl/tech.host31.ru-crt.pem"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/tech.host31.ru-key.pem"
В опции ServerName указываете полное доменное имя сервера, ниже пути к файлам сертификата и закрытого ключа, обратите внимание, что они указываются от корневой папки веб-сервера, т.е. относительно C:\Apache24.
Сохраняем содержимое файла и выходим из него, после чего в основном конфигурационном файле C:\Apache24\conf\httpd.conf находим секцию с подключенными модулями и убеждаемся, что все указанные ниже строки раскомментированы:
LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
Затем сразу после строки:
Listen 80
Добавим:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
Что обеспечит перенаправление всех HTTP запросов, кроме запросов на продление сертификата, на HTTPS порт.
Проверяем конфигурацию и, при отсутствии ошибок, перезапускаем веб-сервер:
C:\Apache24\bin\httpd.exe -t
C:\Apache24\bin\httpd.exe -k restart
Открываем нашу публикацию и убеждаемся, что она автоматически перенаправляется на защищенную версию. Как видим, в нашем случае используется протокол TLS v1.3, совершенная прямая секретность на базе эллиптической кривой Curve25519 и шифр ChaCha20-Poly1305.
В целом каких-либо сложностей при получении сертификата нет, но сам процесс достаточно длительный и требующий внимательного и кропотливого указания настроек. Но это процесс разовый, далее все будет работать автоматически.
Настройка дополнительной аутентификации по паролю
У нас нет основания сомневаться во встроенном механизме аутентификации 1С:Предприятия, во всяком случае в онлайн-сервисах дополнительной аутентификации не предусмотрено, но есть слабое место — пользователи. Во многих базах могут использоваться простые пароли или не использоваться вообще, часть таких паролей могут использоваться скриптами и средствами автоматизации, поэтому взять и установить сразу всем сложные пароли будет не так-то просто.
Ситуация усугубляется, если администрирование 1С выполняют другие сотрудники, они вполне могут, пойдя на поводу пользователей снова установить им слабые пароли, что сильно снижает безопасность собственного механизма аутентификации. Поэтому мы пойдем другим путем и установим дополнительную аутентификацию на уровне веб-сервера, тут уже точно без нас никто пароль не изменит. Основная его цель — оградить собственный механизм аутентификации 1С от доступа всех желающих, которым достаточно будет просто узнать ссылку.
Веб-сервер Apache использует собственную базу пользователей, поэтому займемся ее созданием. Первого пользователя заводим командой:
htpasswd.exe -c -B C:\Apache24\conf\.htpasswd user_1c
Последующих:
htpasswd.exe -B C:\Apache24\conf\.htpasswd glbuch
Ключ -с предписывает создать указанный файл или перезаписать, если он существует, ключ -B указывает использовать для шифрования пароля более надежный, чем MD5 алгоритм bcrypt. После выполнения команды будет интерактивно запрошен пароль, он должен соответствовать всем требованиям сложности, в противном случае теряется весь смысл всей этой затеи.
Теперь создадим в директории с публикацией, в нашем случае C:\Apache24\htdocs\hrm-1 файл .htaccess со следующим содержимым:
AuthName "1C user only"
AuthType Basic
Require valid-user
AuthUserFile C:\Apache24\conf\.htpasswd
Первая строка задает наименование области безопасности, можете вписать туда все что угодно, вторая включает Basic-аутентификацию. Затем указывается политика аутентификации и путь к файлу паролей, valid-user обозначает что доступ получит любой аутентифицированный пользователь. Если нужно указать конкретные учетные записи, то строку нужно изменить следующим образом:
Require user user_1c glbuch
Сохраняем файл, перезапуск веб-сервера при этом не требуется.
Проверяем, если все сделано правильно — будет запрошен логин и пароль.
При работе через браузер достаточно запомнить пароль, а при работе через тонкий клиент пользователю придется вводить учетные данные два раза, первый раз аутентифицироваться на веб-сервере, а только уже потом средствами 1С.
Запомнить пароль там не представляется возможным, и это может вызывать недовольство пользователей, поэтому укажем в свойствах базы дополнительные параметры запуска:
/WSN user_1c /WSP Pa$$w0rd_1
Где ключ /WSN определяет пользователя веб-сервера, а ключ /WSP — пароль.
Теперь платформа будет проходить первый этап аутентификации автоматически.
Как видим, настроить безопасную публикацию информационных баз 1С:Предприятие на веб-сервере Apache в Windows достаточно не сложно. А какой именно из веб-серверов выбрать уже решать вам.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Публикация базы 1С на веб-сервере используется для работы через браузер или через тонкий клиент 1С. Рассмотрим два типа публикации баз 1С: на операционной системе Windows с использованием веб-сервера IIS, а также на операционной системе Linux – с использованием веб-сервера apache.
Публикация базы 1С на Windows Server 2016
1
Установка роли веб-сервера. Через диспетчер серверов необходимо установить роль веб-сервера IIS.
2
Установка клиента 1С. Скачиваем дистрибутив с официального сайта. Нам нужна «Технологическая платформа 1С:Предприятия для Windows».
3
При установке выбираем компоненты «1С: Предприятие 8» и «Модули расширения веб-сервера».
4
После установки добавляем в список информационных баз нужную нам базу и запускаем в режиме конфигуратора.
5
Выполняем действие – «Администрирование» – «публикация на веб-сервере».
6
Нажимаем кнопку опубликовать. И получаем сообщение о том, что публикация выполнена и необходимо перезапустить веб-сервер.
7
Делаем отдельный пул приложений. Назовем его 1c-32x и разрешим ему запуск 32-х битных приложений.
8
Назначаем сайту пул приложений 1c-32x.
9
Проверяем доступность публикации через веб-браузер.
Публикация базы 1С на сервере Linux
1
Обновляем систему, чтобы все пакеты ставились корректно, а также были установлены все последние обновления безопасности.
# yum update
2
Выполняем установку веб-сервера Apache.
# yum install httpd
3
Скачиваем дистрибутивы 1С. Скачать их можно с официального сайта. Нам необходимы файлы:
- 1C_Enterprise83-ws-8.x.x-xxxx.x86_64.rpm
- 1C_Enterprise83-common-8.x.x-xxxx.x86_64.rpm
- Содержаться они в архиве rpm64_8_x_xx_xxxx.tar.gz
На сайте releases.1c.ru доступны по пути:
Технологические дистрибутивы −> Технологическая платформа 8.3 −>Версия платформы (например 8.3.14) −>Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем.
4
Устанавливаем пакеты 1С.
# rpm -i 1C_Enterprise83-common-8.3.14-1630.x86_64.rpm 1C_Enterprise83-ws-8.3.14-1630.x86_64.rpm 1C_Enterprise83-server-8.3.14-1630.x86_64.rpm
Публикуем базу:
# cd /opt/1C/v8.3/x86_64/
# ./webinst -publish -apache24 -wsdir yt-demo -dir /var/www/yt-demo -connstr "File=""/opt/yt-demo"";" -confpath /etc/httpd/conf/httpd.conf
После корректной публикации должно быть следующее сообщение: Публикация выполнена (Publication successful).
Кратко рассмотрим параметры утилиты webinst:
- publish – Действие, которое планируем выполнить. Возможны варианты публикации базы или удаления публикации базы.
- apache24 – тип веб-сервера.
- apache2: публикация веб-клиента для Apache 2.0
- apache22: публикация веб-клиента для Apache 2.2
- apache24: публикация веб-клиента для Apache 2.4
- wsdir– имя алиаса, по которому идет обращение в браузере.
- dir – путь публикации, директория в папке веб-сервера.
- connstr – строка соединения, состоит из трех частей «File=» – указывает что база файловая (возможен вариант Srv для серверной базы), «/opt/yt-demo» – путь к каталогу информационной базы 1С , «;» – служебный символ.
- confpath – путь к файлу конфигурации веб-сервера.
Проверяем, в файле /etc/httpd/conf/httpd.conf должна быть строка:
LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"
А также часть кода для публикации:
# 1c publication
Alias "/yt-demo" "/var/www/yt-demo/"
<Directory "/var/www/yt-demo/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/yt-demo/default.vrd"
</Directory>
5
Прописываем права на папку /opt/yt-demo. Так как в данном примере с базой будет работать только веб-сервер – предоставляем права только учетной записи веб-серера.
# chown -R apache:apache /opt/yt-demo/
# service httpd restart
7
Проверяем доступность публикации.
В своих публикациях мы неоднократно рассказывали о разных аспектах продуктов 1С, однако еще ни разу не затрагивали темы публикации базы данных «1С:Предприятие» на веб-сервере. Речь идет о процедуре, которая позволяет, не устанавливая дополнительные компоненты 1С, получать доступ к базе данных с любого устройства из любой точки земного шара.
В общем виде алгоритм публикации на веб-сервере выглядит следующим образом:
- Регистрируется модуль расширения веб-сервера, который соответствует самому веб-серверу.
- На веб-сервере производится регистрация виртуального приложения.
- Файл публикации (default.vrd) помещается в созданный каталог виртуального приложения, после чего производится его настройка.
- Пользователям выдается доступ к каталогу с файлом базы данных.
Ниже мы поговорим о том, как установить сервер Apache для работы с платформой 1С: Предприятие в Windows и опубликовать базу данных, а также получить сертификат Let’s Encrypt и настроить защищенное соединение.
Как установить сервер Apache для работы с платформой 1С:Предприятие в Windows
Одними из самых распространенных программ, с помощью которых создается веб-сервер, считаются Internet Information Server (IIS), входящий в ОС Windows, а также Apache сервер. Речь идет о некоммерческих утилитах, которые, тем не менее, оснащены функционалом, позволяющим настраивать удаленные серверы.
В этой статье мы сосредоточимся на работе с Apache и публикации базы «1С: Предприятие» в Windows. Причина, по которой Apache часто выбирается в качестве альтернативы штатному IIS — кроссплатформенность. Иными словами, опыт настройки веб-сервера на одной платформе легко можно будет экстраполировать на другую, что сэкономит немало времени и ресурсов.
Существует много неофициальных сборок Apache для Windows, отличающихся некоторыми тонкостями настройки. Мы возьмем в качестве примера Apache 2.4.23 x64 от Apache Haus — в этом дистрибутиве для веб-сервера содержатся все исполняемые файлы и конфиги, необходимые для работы Apache.
Скачивание производится с официального сайта. Обратите внимание на то, чтобы разрядность скачиваемой сборки не отличалось от разрядности платформы «1С: Предприятие» (скорее всего речь пойдет о x64). Также после загрузки с помощью контрольных сумм SHA проверьте целостность и подлинность файла.
Когда архив скачан, произведите его распаковку в корневой каталог нужного диска (в нашем примере это будет диск C). Путь к папке с веб-сервером будет выглядеть следующим образом: C:\Apache24.
Залогинившись с правами администратора, выполните команду «C:\Apache24\bin\httpd.exe -k install
», которая запустит установку веб-сервера.
Следующим шагом от вас потребуется настроить в брандмауэре Windows доступ к серверу через порты 80 и 443. Сделать это можно как в графическом интерфейсе, так и в терминале PowerShell, выполнив команду «New-NetFirewallRule -DisplayName "Apache 2.4" -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 80,443
».
Чтобы убедиться, что порты открыты, зайдите в веб-браузер с другого устройства, наберите в адресной строке IP-адрес или домен созданного сервера. Если все сделано правильно, на экране отобразится страница-заглушка Apache.
Чтобы завершить настройку веб-сервера, на котором будут публиковаться базы данных «1С: Предприятия», установите эту платформу и подключите модуль расширения ее веб-сервера. Делается это следующим образом:
- После установки «1С: Предприятие» в панели управления вызовите инструмент «установка и удаление программ», выберите эту платформу и в открывшемся окне нажмите «изменить», а затем — «далее».
- Появится окно выборочной установки, где, среди компонентов, которые нужно установить, найдите модули расширения веб-сервера и в выпадающем списке кликните на «данный компонент будет установлен на локальный жесткий диск».
- Нажмите кнопку «Далее» и следуйте инструкциям мастера для завершения установки.
Как опубликовать базу данных «1С: Предприятие»
Принято выделять два основных способа публикации баз данных: в режиме «Конфигуратор» и с помощью утилиты webinst. Рассмотрим подробнее каждый из них. Отметим, что между публикацией серверной или файловой базы на сервере Apache нет никакой разницы
Публикация с помощью Конфигуратора
Этот способ считается более легким, однако требует наличия клиентской лицензии «1С: Предприятие». Приобретя ее в Максиплейс, вы получите в подарок 3 месяца бесплатного использования виртуального сервера. Если вы купите больше лицензий, то мы готовы продлить бесплатный период или предоставить на тот же срок несколько виртуальных серверов. А самым любимым клиентам можем предоставить скидку на продвинутую конфигурацию сервера.
Когда лицензия куплена, можно приступать к публикации. Для этого в режиме «Конфигуратор» загрузите нужную информационную базу и перейдите по пути «Администрирование» => «Публикация на веб-сервере».
В открывшемся окне заполните нужные поля: «сервер» (Apache 2.4), «имя» (виртуальная папка публикации, которая войдет в URL) и «каталог» (месторасположение публикации на физическом сервере; должно быть вложено в папку C:\Apache24\htdocs).
Обратите внимание, что для упрощения публикации, а также из соображений безопасности нужно оставить только галочку «Публиковать доступ для клиентских приложений», а все остальные — отключить.
По завершении публикации потребуется перезагрузить веб-сервер, воспользовавшись возможностями графической оболочки.
Публикация с помощью Webinst
Альтернативой конфигуратору выступает webinst — утилита, которая предназначена для настройки веб-серверов с целью поддержки работы веб-клиента и может работать, как с ОС Windows, так и дистрибутивами семейства Linux.
Webinst не нуждается в покупке лицензии и находится в папке bin установленной платформы «1С: Предприятие» (ищется так: win+R, cmd cd C:\Program Files\1cv8\8.3.24.1548\bin).
- Чтобы произвести публикацию клиент-серверной базы, достаточно выполнить в терминале команду «
webinst -publish -apache24 -wsdir hrm-1 -dir "C:\Apache24\htdocs\hrm-1" -connstr "Srvr=SRV-1C;Ref=HRM-1;" -confpath "C:\Apache24\conf\httpd.conf"
». - Файловая база подключается с помощью команды «
webinst -publish -apache24 -wsdir hrm-2 -dir "C:\Apache24\htdocs\hrm-2" -connstr "File=""C:\1C_Bases\HRM-2"";" -confpath "C:\Apache24\conf\httpd.conf"
» (разница с предыдущим вариантом состоит только в строчке подключения к базе.
По завершении публикации потребуется перезагрузить веб-сервер командой «C:\Apache24\bin\httpd.exe -k restart
»
Публикация файловой базы имеет некоторые особенности: при работе через браузер вам понадобится установить на узел с веб-сервером количество клиентских лицензий по количеству сеансов. После завершения сеанса в браузере он продолжает сохраняться на сервере в течение 20 минут на случай повторного подключения, все это время за ним сохраняется выданная лицензия.
Как получить SSL-сертификат и настроить защищенное соединение
Настройка защищенного соединения — важный аспект публикации базы 1С на веб сервере. SSL-сертификаты — это особые криптографические шифры для безопасного соединения сервера и клиента. В одной из предыдущих публикаций мы рассказывали, как настроить сервер «1С-Битрикс» под SSL-сертификат. Углубимся же в эту тему и рассмотрим, как получить сертификат безопасности для Apache с помощью OpenSSL, а также — Let’s Encrypt.
OpenSSL для Apache
OpenSSL — опенсорсная криптографическая библиотека, получившая широкую известность благодаря расширению SSL/TLS, которое используется в веб-протоколе HTTPS.
На официальном сайте нужно принять условия лицензионного соглашения, после чего запустится мастер установки сертификата и предложит выбрать место для размещения дистрибутива. Далее останется лишь произвести установку и решить, планируете ли вы сделать пожертвование проекту.
Следующим шагом откройте терминал, перейдите в директорию исполняемого файла OpenSSL и поочередно выполнить две команды:
cd "C:\Program Files\OpenSSL-Win64\bin"
openssl.exe req -x509 -nodes -days 365 -newkey rsa:2048 -keyout "C:\Program Files (x86)\Apache24\conf\ssl\myserver.key" -out "C:\Program Files (x86)\Apache24\conf\ssl\myserver.crt"
Обратите внимание, что во второй команде «myserver» нужно заменить на реальное имя сервера. Когда команды будут выполнены, в указанной директории появятся сгенерированные сертификаты.
Чтобы протокол HTTP включился на веб-сервере, нужно открыть конфиг «httpd.conf» и раскомментировать строку nclude conf/extra/httpd-ahssl.conf. Далее нужно будет зайти в конфиг httpd-ahssl.conf и прописать в нем путь к сертификату (например, «C:\Apache24\conf\extra\httpd-ahssl.conf»).
Let’s Encrypt для Apache
Другой способ получить защищенное соединение — заказать популярный сертификат Let’s Encrypt, поставляющийся бесплатно. Мы уже подробно писали о нем, поэтому уточним лишь, что он требует регулярного перевыпуска — сейчас срок его действия составляет три месяца.
Важно, чтобы к моменту выпуска у вас был настроен доступ к веб-серверу через 80 или 443 порт (как это сделать в брандмауэре Windows мы уже описали выше). Когда все готово, нужно зайти на официальный сайт, скачать оттуда утилиту для командной строки certBot, после чего от имени администратора выполнить в терминале «certbot certonly –authenticator manual
».
После этого вам будет предложено указать имя домена, для которого будет выпущен сертификат. Далее в корневой папке веб-сервера потребуется создать файл с этим именем, чтобы подтвердить, что владельцем домена являетесь именно вы.
Если все сделано правильно, в каталоге «C:\Certbot\archive» появятся сгенерированные сертификаты, которые теперь можно добавлять в настройки веб-сервера.
Резюме
Мы рассмотрели процесс установки сервера Apache для работы с платформой «1С: Предприятие» в Windows, описали процесс публикации базы данных и установки SSL-сертификатов.
За более подробной информацией можно обратиться к нашим инженерам, для которых не впервой работать с продуктами 1С: так, одна из наших самых популярных услуг — облачный сервер для «1С-Битрикс», выбрав который, вы получите тщательно оптимизированный, преднастроенный и полностью готовый к работе сервер в облаке MaxiPlace.
Также Максиплейс предоставляет услуги по получению SSL-сертификатов. За счет автоматизации всех процессов, вы можете получить сертификат с проверкой домена в течение 2-х минут.
Содержание:
1. Установка веб-сервера
2. Публикация базы на сервере Apache
1. Установка веб-сервера
Веб-сервер — программа, которая получает и обрабатывает запросы от пользователя.
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).
ServerName localhost:80
→ Система (system).
→ Дополнительные параметры системы (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
Специалист компании ООО «Кодерлайн»
Шашков Дмитрий