Top.Mail.Ru
Соц. сети
Наша почта:
Отдел продаж:
Соц. сети
Наша почта:
Отдел продаж:

Публикация баз 1С на веб-сервере с использованием SSL-сертификата

08.01.2023
Время чтения: ~26 мин.
26417

Существует множество причин, по которым может возникнуть необходимость организации доступа к базе через web. Например, для организации доступа к базе из Интернета, для организации обменов с базой 1С через http или web сервисы, для работы с файловой базой в многопользовательском режиме по локальной сети – все это даст значительный прирост производительности по сравнению с доступом к файлу базы данных через общую сетевую папку. Для организации такого доступа к базе, потребуется стороннее ПО в виде веб-сервера. Базы 1С могут быть опубликованы на веб серверах IIS и Apache. Далее рассмотрим установку и настройку перечисленных веб серверов и порядок публикации баз 1С на каждом из них. Если у вас веб сервер уже установлен и настроен, тогда можете переходить сразу к публикации.

1. Установка и настройка веб сервера IIS.

Для выполнения публикации базы 1С на веб сервере IIS для начала потребуется установить и настроить сам веб-сервер. Дистрибутив данного веб-сервера уже входит в состав операционной системы Windows. Для правильной работы опубликованной базы 1С достаточно компонентов "Расширения ISAPI" ("ISAPI Extensions") и "Фильтры ISAPI"("ISAPI Filters"). Однако для более удобного управления веб-сервером потребуется также установить и "Консоль управления IIS" ("IIS Managment Console"). Расположение данных компонентов в зависимости от операционной системы может отличаться, наша задача их найти и установить.

Windows 10

В Windows 10 для их установки требуется открыть панель управления (Control panel) и выбрать пункт меню Программы – Программы и компоненты (Programs – Programs and features) и нажать на кнопку "Включение или отключение компонентов Windows" ("Turn Windows features on or off").

7-1.jpg

В открывшемся окне найти и отметить галочкой компоненты: Расширения ISAPI(ISAPI Extensions), Фильтры ISAPI(ISAPI Filters), Консоль управления IIS(IIS Managment Console) и нажать ОК:

7-2.jpg

Windows Server 2012 R2, 2016, 2019 и 2022

Настройка компонент для Windows Server 2012 R2, Windows Server 2016 и Windows Server 2019 одинаковая, и все настройки производятся в диспетчере серверов (Server Manager).

Откройте диспетчер серверов (Server Manager) и нажмите Управление – Добавить роли и компоненты (Manage – Add Roles and Features).

7-3.jpg

В ответ на нажатие откроется окно мастера добавления ролей и компонентов (Add Roles and Features).

7-4.jpg

В этом окне нажмите два раза "Далее" ("Next"), пока мастер не переключится на страницу ролей сервера (Server Roles).

7-5.jpg

Во вкладке роли сервера (Server Roles) установите флажок "Web Server IIS". Так как эта роль зависит от другой роли ([Tools] IIS Management Console), то будет предложено установить ее дополнительно. Это можно сделать с помощью нажатия кнопки "Добавить компоненты" (Add Features) в открывшемся окне. После чего нажимаем кнопку "Далее" ("Next"), пока мастер не дойдет до вкладки "Выбор служб ролей". На этой вкладке нужно найти пункт "Разработка приложений"("Application Development") и выбрать в нем пункты "ISAPI Extensions" и "ISAPI Filters".

Как только закончите с установкой флажков нажимайте "Далее" ("Next") и "Установить" ("Install").

На этом установка необходимых компонентов веб-сервера завершена.

2. Публикация базы на веб сервере IIS

После установки веб-сервера можно переходить непосредственно к публикации информационной базы. Для этого заходим в конфигуратор нужной базы, предварительно запустив программу 1С от имени администратора. Далее выбираем пункт "Администрирование" - "Публикация на веб-сервере". Придумываем имя для нашей публикации, например, "test_1c_iis", проверяем что правильно определился веб сервер - "Internet Information Services", каталог оставляем по умолчанию и жмем "Опубликовать".

7-6.jpg

Соглашаемся на перезапуск веб-сервера и переходим к проверке корректности публикации. Для проверки доступности опубликованной базы нужно сформировать путь к ней. Если не были внесены дополнительные настройки на веб сервере, то путь будет иметь следующий вид: http://<Имя веб сервера>/<Имя публикации> Имя вашего веб сервера, где производилась его установка (например, server1) Имя публикации базы (которое было указано в окне настройки публикации). Для таких параметров ссылка будет иметь вид:

http://server1/test_1c_iis

Обратите внимание, что если выполняется публикация файловой базы, то:

7-7.jpg

Вставляем в браузер сформированную ссылку на публикацию. Если база открылась, значит публикация выполнена корректно.

3. Настройка веб сервера Apache

Первым делом необходимо скачать и установить веб-сервер. Список доступных реализаций можно найти на официальном сайте производителя по ссылке, а в статье будет использован самый первый из списка дистрибутивов. Он поставляется в виде zip-архива без инсталлятора. Поэтому нужно скачать архив и разархивировать в "C:\Program Files" или "C:\Program Files (x86)" в зависимости от того, какую разрядность вы выбрали. Потом нужно открыть каталог, куда вы распаковали архив и найти в нем папку "conf", а в ней конфигурационный файл веб сервера - "httpd.conf". Далее в конфигурационном файле (у меня он лежит по пути "C:\Program Files (x86)\Apache24\conf\httpd.conf") необходимо отредактировать путь к корневому каталогу веб сервера. Для этого находим переменную SRVROOT и прописываем путь к каталогу, куда мы распаковали архив, в моем случае это "C:\Program Files (x86)\Apache24".

7-8.jpg

Далее откройте командую строку от имени администратора. Самый простой вариант – это открыть меню Пуск и ввести cmd. После того, как приложение будет найдено щелкнуть по нему правой кнопкой мыши и выбрать пункт меню "Запустить от имени Администратора" ("Run as Administrator").

В командной строке переходим в директорию распакованного Apache с помощью команды cd. Например:

cd "C:\Program Files (x86)\Apache24\bin"

и вводим команду:

httpd.exe -k install

7-9.jpg

Это установит службу Apache, которой можно будет управлять в окне служб.

7-10.jpg

На этом установка Apache завершена. Осталось только опубликовать информационную базу.

4. Публикация базы на веб сервере Apache

Процесс аналогичен публикации баз на IIS, который описан выше, однако следует обратить внимание на то, что каталог по умолчанию не заполняется. Создайте пустой каталог на диске и укажите путь к нему. Также нужно проверить, что указан правильный веб-сервер, а именно "Apache 2.4". После чего жмите кнопку "Опубликовать".

7-11.jpg

Проверить доступность публикации можно тем же способом, как делали для IIS. Также необходимо дать права пользователю, от лица которого запускается Apache, на каталог bin файлов конкретной версии системы «1C:Предприятие» (чтение и выполнение) и каталог информационной базы (чтение и запись, в случае файлового варианта).

5. Организация доступа к опубликованной базе из Интернета

Теперь имея ссылку на публикацию мы можем работать с базой через браузер или через тонкий клиент, прописав путь к публикации. Однако нужно учитывать, что при текущих настройках доступ публикации будет только из локальной сети. Для того чтобы опубликованная база была доступна за рамками локальной сети нужно выполнить ряд шагов:

  1. Получить у своего интернет-провайдера статический IP-адрес, по-другому "белый IP". Это адрес, который провайдер выдаёт пользователю в аренду на постоянной основе. Он не меняется никогда, и при любом выходе в интернет он одинаковый.
  2. Зарегистрировать в интернете доменное имя. Это можно сделать, обратившись к интернет-провайдеру, или заказать, например, тут. Домен – это тот адрес, по которому будет доступен ваш веб-сервер из глобальной сети Интернет, например, www.myserver.ru.
  3. Настроить на маршрутизаторе правило перенаправления портов (по- другому говорят "пробросить порт"). Делать это нужно для того, чтобы все внешние запросы, приходящие на конкретный порт, были перенаправлены на тот сервер, где мы настраивали веб-сервер. Обычно это делают системные администраторы. Для этого им потребуется назвать имя сервера и порт, на котором работает веб-сервер, по умолчанию это 80 порт для http и 443 для https.
  4. Приобрести SSL-сертификат. Сделать это можно там же, где приобретали доменное имя, так как сертификат выдается на конкретное доменное имя. Он позволит зашифровать трафик, который передается между браузером и веб-сервером, во избежание перехвата паролей и прочей ценной информации злоумышленниками.
  5. Перенаправить все запросы к вашему доменному имени к выданному статическому IP-адресу.

Следует учитывать, что данные действия должны быть выполнены заранее. Пункты 1,2,4 могут быть выполнены заказчиком самостоятельно. Пункт 3 и 5 выполняется системным администратором заказчика или сторонней организацией на платной основе, например, можно посоветовать клиенту обратиться к нашей обслуживающей организации.

Только после выполнения вышеописанных шагов можно приступить к настройке веб-сервера, для организации доступа к опубликованной базе из интернета.

Стоит сказать, что вместо покупки SSL-сертификата, есть возможность его получить и другими способами. Например, можно самостоятельно сгенерировать самоподписанный сертификат или выпустить бесплатный временный сертификат с помощью стороннего сервиса. О всех недостатках и преимуществах данных способов в таблице ниже:

Сертификат

Преимущества

Недостатки

Платный

Выпущен аккредитованным центром сертификации. Ему доверяют все браузеры. Автоматически продлевается

Выдается на платной основе, выпуск происходит не моментально, нужно ждать обработки заказа

Самоподписанный

Быстрый самостоятельный выпуск. Можно выпустить на длительный срок

Нет доверия от всех браузеров. Чтобы браузер ему доверял, требуется его включение в список доверенных всем пользователям, которые будут работать с опубликованными базами

Временный

Быстрый самостоятельный выпуск. Доверяют большинство браузеров

Срок действия 90 дней, после чего требуется его перевыпуск

Если у клиента уже есть купленный сертификат, нужно его запросить и добавить его в настройках веб сервера. Как это сделать, будет рассказано ниже. Если сертификата нет, и недостатки сертификатов, выпущенных альтернативными способами, для клиента несущественны, тогда можно приступить к выпуску самоподписанного или временного сертификата.

5.1. Выпуск самоподписанного сертификата

Алгоритм выпуска самоподписанного сертификата для IIS и Apache различается.

5.1.1. IIS

IIS сам включает в себя нужные средства для выпуска самоподписанного сертификата. Для этого откройте окно Диспетчера служб IIS (Internet Information Services (IIS) Manager) и выделите сервер в списке Подключений (Connections). После этого нажмите на ссылку "Сертификаты сервера" ("Server Certificates").

7-12.jpg

В этом же окне мы можем добавить уже купленный ранее сертификат или сгенерировать новый. Для импорта существующего сертификата нужно нажать ссылку "Импортировать (Import)", указать путь к сертификату в формате ".pfx" и пароль от него:

7-13.jpg

Обратите внимание, что добавить мы можем только сертификаты с расширением ".pfx". Что делать в случае, если нет сертификата нужного формата, будет описано позже.

Для создания самоподписанного сертификата нужно нажать "Создать самозаверенный сертификат…" ("Create Self-Signed Certificate…").

7-14.jpg

В окне мастера создания самоподписанного сертификата остается указать только произвольное название сертификата. В большинстве случаев, во избежание путаницы, лучше явно указывать в качестве значения "Полное имя сертификата" ("Specify a friendly name for the certificate") адрес сервера, на котором расположен сервер IIS.

7-141.jpg

Для того, чтобы при подключении пользователей к опубликованной базе браузер не ругался на сертификат, требуется его выгрузить и отправить пользователю, чтобы он его себе установил в список доверенных сертификатов.

На этом процесс создания самоподписанного сертификата в IIS завершен. Для того чтобы опубликованная база открывалась по протоколу HTTPS нужно указать сертификат в настройках сайта. Для этого выделяем сайт по умолчанию (Default Web Site), жмем на ссылку "Привязки". Как мы видим в данный момент наш сайт доступен только по протоколу HTTP на 80 порту. Нам нужно добавить новую привязку, для того чтобы все публикации на этом сайте были доступны также и по протоколу HTTPS.

7-15.jpg

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

7-16.jpg

На этом настройка веб сервера IIS для работы по протоколу HTTPS завершена. Если на маршрутизаторе выполнены все настройки, о которых было упомянуто выше, то база должна успешно открыться по защищенному каналу. Ее ссылка будет формироваться по следующему принципу: https://<имя купленного домена>/<имя публикации>

5.1.2. Apache

В отличии от IIS, сертификат для Apache выпускается с помощью стороннего программного обеспечения OpenSSL. По умолчанию в операционной системе Windows его нет. Поэтому его нужно скачать и установить самостоятельно. Возможные дистрибутивы OpenSSL для Windows указаны на wiki- странице официального сайта. В статье рассматривается дистрибутив по ссылке, который указан первым на странице wiki. После скачивания дистрибутива установки необходимо его запустить.

На первой странице нужно согласиться с условиями лицензионного соглашения (переключить переключатель на "I accept the agreement") и нажать кнопку "Next".

7-18.jpg

Мастер переключится на страницу размещения дистрибутива. Если местоположение не планируется изменять, то можно оставить поле в значении по умолчанию и нажать кнопку "Next".

7-19.jpg

На следующем шаге ничего менять не нужно, и можно просто нажать "Next".

7-20.jpg

Дистрибутив готов к установке. Нужно нажимать кнопку "Install" и дождаться завершения установки.

7-21.jpg

Финальный шаг – это страница пожертвований в пользу поддержки проекта. Если в планы не входит перечисление пожертвований, то необходимо снять все флажки и нажать кнопку Finish.

7-22.jpg

Далее потребуется открыть командную строку от имени администратора и перейти в директорию исполняемого файла OpenSSL(у меня это "C:\Program Files\OpenSSL-Win64\") командой:

cd "C:\Program Files\OpenSSL-Win64\bin"

потом нужно выполнить команду ниже (параметры "-keyout" и "-out" содержат пути, куда будут сгенерированы сертификаты, рекомендую использовать путь как в примере. Также вместо "myserver" рекомендуется использовать реальное имя сервера):

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"

Во время выполнения команды необходимо будет заполнить информацию о владельце сертификата. Обязательно нужно заполнить "Common Name (e.g. server FQDN or Your bane)", остальные поля можно оставить по умолчанию. После выполнения команды в указанном вами каталоге должны появиться сгенерированные сертификаты.

7-23.jpg

Для включения протокола HTTP на веб-сервере, нам потребуется снова открыть конфигурационный файл "httpd.conf" и раскомментировать строки ниже путем удаления символа решетки (#) в начале строки:

7-24.jpg

Еще необходимо убедиться, что раскомментирована строка "Include conf/extra/httpd-ahssl.conf"

7-25.jpg

Теперь осталось только прописать путь к сгенерированным сертификатам в файле httpd-ahssl.conf. У меня полный путь к нему такой: "C:\Program Files (x86)\Apache24\conf\extra\httpd-ahssl.conf". В нем мы ищем параметры "SSLCertificateFile" и "SSLCertificateKeyFile", где указываем путь к сгенерированным ранее сертификатам с расширением ".crt" и ".key". Так как мы генерировали сертификаты в "C:\Program Files (x86)\Apache24\conf\ssl\" и указывали ранее путь к корневому каталогу веб сервера (SRVROOT "C:\Program Files (x86)\Apache24"), то нам тут необходимо только поменять имя сертификата на то, которое мы указали при генерации. Впрочем, если напишете полный путь к сертификату, например, "C:\Program Files (x86)\Apache24\conf\ssl\myserver.crt", тоже будет работать. В итоге должно получиться примерно так:

7-26.jpg

На этом настройка веб-сервера завершена. Если озвученные ранее подготовительные действия были выполнены, то можно проверять доступность публикации из интернета. Действия аналогичные как для веб-сервера IIS.

5.2. Выпуск временного сертификата (Let's Encrypt)

Прежде чем приступить к выпуску временного сертификата, у нас уже должен быть доступный веб-сервер из Интернета по 80 порту. Далее нужно скачать с официального сайта и установить на свой компьютер (необязательно на сервер, для которого будет генерироваться сертификат) утилиту для командной строки certBot. После ее установки должны запустить командную строку от имени администратора и выполнить команду:

certbot certonly --authenticator manual

Тут программа нам предлагает ввести имя домена, для которого нужно выпустить сертификат. После ввода имени домена нажимаем "Enter". Следующим шагом нужно в корневом каталоге веб сервера создать файл с указанным именем и содержимым (это делается для подтверждения прав владения указанным доменом):

7-27.jpg

Должно получится как-то так:

7-28.jpg

Примечание: для создания каталога с точкой в начале имени каталога, воспользуйтесь командной строкой.

После создания указанного каталога и файла в нем жмем "Enter" и дожидаемся завершения выполнения команды. Если все выполнилось успешно, программа нам сгенерирует в каталог "C:\Certbot\archive" нужные нам сертификаты.

7-29.jpg

Теперь сгенерированные сертификаты можно добавлять в настройки веб-сервера.

6. Преобразование формата сертификата

Иногда может потребоваться преобразование сертификатов из одного формата в другой. Например, как добавить сгенерированные ранее сертификаты на веб- сервер IIS, когда мы помним, что для импорта сертификата нужен один файл с расширением "pfx"? Для этого нужно их сконвертировать в нужный нам формат. Для этой цели можно воспользоваться установленной ранее программой OpenSSL, выполнив команду:

openssl.exe pkcs12 -export -out "C:\Certbot\archive\app.rg-spc.ru\app.rg-spc.r.pfx" -inkey "C:\Certbot\archive\app.rg-spc.ru\privkey1.pem" -in "C:\Certbot\archive\app.rg-spc.ru\cert1.pem" -certfile "C:\Certbot\archive\app.rg-spc.ru\fullchain1.pem"

где нужно указать пути к сгенерированным ранее сертификатам и путь, куда должен быть сгенерирован преобразованный сертификат, а также придумать пароль к сертификату, который потребуется при его добавлении на веб-сервер.

7-30.jpg

После окончания выполнения команды в указанной нами папке должен появится сконвертированный сертификат:

7-31.jpg

Если вам прислали сертификат в виде двух файлов с расширениями "key" и "crt", тогда команда на преобразование в формат "pfx" будет выглядеть примерно так:

"C:\Program Files\OpenSSL-Win64\bin.openssl.exe" pkcs12 -inkey "C:\Сертификаты\KEY.key" -in "C:\Сертификаты\certificate.crt" -export -out "C:\Сертификаты\certificate.pfx"

Во время работы программа предложит придумать пароль для созданного сертификата и ввести его. Его потребуется ввести еще при добавлении сертификата на веб-сервер IIS, поэтому его нужно запомнить. Как импортировать сертификаты на IIS было описано ранее. После выполнения команды в указанном каталоге должен появится нужный нам сертификат.

7-32.jpg

Таким образом, мы наглядно показали, как выполнить публикацию баз 1С на веб-сервере с использованием сертификата или без такового.

Помощь специалиста
Если у вас возникли затруднения с настройкой программ 1С, позвоните нашему специалисту по телефону: +7 495 989 22 16. Или оставьте свой номер телефона ниже, мы перезвоним вам через 15 минут!

Другие статьи

Обработка файлов cookie

Наш сайт использует файлы cookie для обеспечения удобства пользователей сайта, его улучшения, сбора статистики и предоставления персонализированных рекомендаций.

Для получения дополнительной информации о целях, сроках и порядке использования файлов cookie вы можете ознакомиться с нашей Политикой обработки файлов cookie