Публикация базы данных «1С:Предприятия» на веб-сервере — стандартная задача для обеспечения мобильного доступа, работы через веб-клиент или интеграции с внешними сервисами. Однако современные облачные платформы, такие как Битрикс24, предъявляют жесткие требования к безопасности: обмен данными должен происходить исключительно по защищенному протоколу HTTPS. Попытка подключиться по незащищенному HTTP-соединению или с использованием самоподписанного сертификата приведет к блокировке запросов со стороны внешней системы.
В этой статье мы подробно рассмотрим, как правильно перевести вашу публикацию 1С на веб-сервере Internet Information Services (IIS) на протокол HTTPS с использованием бесплатного, автоматически продлеваемого SSL-сертификата от центра сертификации Let's Encrypt. Мы пройдем весь путь — от привязки доменного имени до автоматизации продления и разбора альтернативных конфигураций.
При интеграции 1С с Битрикс24 или другими веб-сервисами обмен данными происходит через вебхуки или REST API. Облачный сервер Битрикс24 отправляет запросы на ваш веб-сервер. Если на сервере установлен самоподписанный (self-signed) сертификат, удаленный сервер не сможет подтвердить его подлинность, так как в его доверенном хранилище нет вашего локального центра сертификации. В результате соединение будет разорвано из соображений безопасности.
Кроме того, публикация базы 1С по умолчанию использует базовую авторизацию (Basic Authentication). При использовании протокола HTTP имя пользователя и пароль передаются по сети в открытом (точнее, легко декодируемом формате Base64) виде. Использование шифрования TLS/SSL упаковывает весь трафик, включая заголовки авторизации и пароли, в защищенный туннель, полностью исключая перехват данных злоумышленниками.
Важнейшее правило центров сертификации (включая Let's Encrypt): нельзя выпустить доверенный SSL-сертификат напрямую на IP-адрес (за редкими исключениями для публичных диапазонов крупных провайдеров, которые не подходят для локальных серверов). Сертификат всегда привязывается к доменному имени.
Поэтому перед началом настройки выполним следующие действия:
1c.mycompany.ru).Прежде чем генерировать сертификат, нам нужно убедиться, что сам IIS настроен правильно и на нем установлены все необходимые компоненты для работы расширения веб-сервера 1С.
Проверим состав ролей сервера в диспетчере Windows Server. Должны быть обязательно установлены:
wsisapi.dll, через которые работает публикация 1С.Также важно настроить права доступа к файлам платформы 1С. Пользователю, от имени которого работает пул приложений IIS (обычно это встроенная учетная запись IIS_IUSRS или DefaultAppPool), необходимо предоставить права на «Чтение и выполнение» к каталогу установки платформы (а именно к папке bin, где лежит библиотека wsisapi.dll).
Выполним стандартную публикацию информационной базы. Для этого запустим Конфигуратор 1С от имени администратора:
trade). Это имя будет частью URL-адреса вашей базы: https://1c.mycompany.ru/trade.C:\inetpub\wwwroot\trade).default.vrd.Проанализируем пример структуры файла default.vrd для понимания того, как именно организована связь:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/trade"
ib="Srvr="server1c";Ref="trade_db";">
<ws>
<point name="Exchange" enable="true"/>
</ws>
<httpServices>
<service name="bitrix24" rootUrl="bitrix24" enable="true"/>
</httpServices>
</point>
Для операционной системы Windows идеальным инструментом автоматизации работы с Let's Encrypt является бесплатная утилита с открытым исходным кодом Win-ACME (ранее известная как WACS — Windows ACME Simple). Она не требует глубоких знаний консоли и способна самостоятельно настроить IIS.
Выполним генерацию сертификата по шагам:
C:\Tools\Win-ACME).wacs.exe от имени Администратора. Откроется интерактивное текстовое меню утилиты.1c.mycompany.ru).После этого утилита автоматически выполнит следующие действия:
Иногда при обмене тяжелыми пакетами данных между 1С и Битрикс24 могут возникать обрывы соединений. Зачастую это связано с тем, что IIS по умолчанию пытается использовать устаревшие или небезопасные протоколы шифрования.
Рекомендуется принудительно отключить небезопасные протоколы TLS 1.0 и TLS 1.1, оставив включенными только современные стандарты безопасности: TLS 1.2 и TLS 1.3.
Для этого очень удобно использовать бесплатную утилиту IIS Crypto от компании Nartac Software:
Рассмотрим еще одну профессиональную схему публикации баз данных, которая пользуется большой популярностью у системных администраторов крупных инфраструктур. Это использование веб-сервера Nginx перед IIS в качестве обратного прокси-сервера (Reverse Proxy).
В этой схеме внешние клиенты и сервисы (включая Битрикс24) обращаются по защищенному протоколу HTTPS к Nginx (порт 443). На Nginx разворачивается SSL-сертификат Let's Encrypt. Сам же Nginx перенаправляет трафик по локальной сети на IIS по обычному порту HTTP (порт 80).
Преимущества данной схемы:
Проанализируем пример конфигурационного файла Nginx для перенаправления запросов к публикации 1С:
server {
listen 80;
server_name 1c.mycompany.ru;
# Перенаправление всех HTTP запросов на HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name 1c.mycompany.ru;
ssl_certificate /etc/letsencrypt/live/1c.mycompany.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/1c.mycompany.ru/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://192.168.1.50:80; # Локальный IP-адрес сервера IIS
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Увеличиваем таймауты для тяжелых запросов 1С
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
}
}
После завершения всех настроек выполним проверку доступности нашей публикации:
https://1c.mycompany.ru/trade.https://1c.mycompany.ru/trade можно смело прописывать в настройках интеграции модуля Битрикс24 — облачный сервис без проблем подключится к вашей базе данных по защищенному каналу.