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

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Публикация базы данных «1С:Предприятия» на веб-сервере — стандартная задача для обеспечения мобильного доступа, работы через веб-клиент или интеграции с внешними сервисами. Однако современные облачные платформы, такие как Битрикс24, предъявляют жесткие требования к безопасности: обмен данными должен происходить исключительно по защищенному протоколу HTTPS. Попытка подключиться по незащищенному HTTP-соединению или с использованием самоподписанного сертификата приведет к блокировке запросов со стороны внешней системы.

В этой статье мы подробно рассмотрим, как правильно перевести вашу публикацию 1С на веб-сервере Internet Information Services (IIS) на протокол HTTPS с использованием бесплатного, автоматически продлеваемого SSL-сертификата от центра сертификации Let's Encrypt. Мы пройдем весь путь — от привязки доменного имени до автоматизации продления и разбора альтернативных конфигураций.

Зачем нужен полноценный SSL-сертификат и почему не подойдет самоподписанный?

При интеграции 1С с Битрикс24 или другими веб-сервисами обмен данными происходит через вебхуки или REST API. Облачный сервер Битрикс24 отправляет запросы на ваш веб-сервер. Если на сервере установлен самоподписанный (self-signed) сертификат, удаленный сервер не сможет подтвердить его подлинность, так как в его доверенном хранилище нет вашего локального центра сертификации. В результате соединение будет разорвано из соображений безопасности.

Кроме того, публикация базы 1С по умолчанию использует базовую авторизацию (Basic Authentication). При использовании протокола HTTP имя пользователя и пароль передаются по сети в открытом (точнее, легко декодируемом формате Base64) виде. Использование шифрования TLS/SSL упаковывает весь трафик, включая заголовки авторизации и пароли, в защищенный туннель, полностью исключая перехват данных злоумышленниками.

Шаг 1. Подготовка доменного имени

Важнейшее правило центров сертификации (включая Let's Encrypt): нельзя выпустить доверенный SSL-сертификат напрямую на IP-адрес (за редкими исключениями для публичных диапазонов крупных провайдеров, которые не подходят для локальных серверов). Сертификат всегда привязывается к доменному имени.

Поэтому перед началом настройки выполним следующие действия:

  1. Зарегистрируем доменное имя (или создадим поддомен в уже имеющемся домене вашей компании, например, 1c.mycompany.ru).
  2. В панели управления DNS-зоной вашего домена добавим новую А-запись, которая будет указывать на ваш внешний статический белый IP-адрес.
  3. Убедимся, что на сетевом оборудовании (роутере, брандмауэре) настроен проброс портов 80 (HTTP) и 443 (HTTPS) на локальный IP-адрес сервера, где установлен IIS. Порт 80 критически важен, так как Let's Encrypt использует его для проверки прав на владение доменом (вызов HTTP-01 challenge).

Шаг 2. Подготовка веб-сервера IIS для работы с 1С

Прежде чем генерировать сертификат, нам нужно убедиться, что сам IIS настроен правильно и на нем установлены все необходимые компоненты для работы расширения веб-сервера 1С.

Проверим состав ролей сервера в диспетчере Windows Server. Должны быть обязательно установлены:

Также важно настроить права доступа к файлам платформы 1С. Пользователю, от имени которого работает пул приложений IIS (обычно это встроенная учетная запись IIS_IUSRS или DefaultAppPool), необходимо предоставить права на «Чтение и выполнение» к каталогу установки платформы (а именно к папке bin, где лежит библиотека wsisapi.dll).

Шаг 3. Публикация базы данных из конфигуратора 1С

Выполним стандартную публикацию информационной базы. Для этого запустим Конфигуратор 1С от имени администратора:

  1. Перейдем в меню Администрирование — Публикация на веб-сервере.
  2. В поле «Имя» укажем краткое латинское имя публикации (например, trade). Это имя будет частью URL-адреса вашей базы: https://1c.mycompany.ru/trade.
  3. В поле «Веб-сервер» выберем Internet Information Services.
  4. Укажем каталог на диске, где будут храниться файлы конфигурации публикации (например, C:\inetpub\wwwroot\trade).
  5. На вкладках «Web-сервисы» и «HTTP-сервисы» отметим флагами те объекты, к которым планируется обращаться извне (для интеграции с Битрикс24 обязательно отмечаем HTTP-сервисы синхронизации).
  6. Нажмем кнопку Опубликовать. Платформа создаст в указанном каталоге файл настроек 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>

Шаг 4. Получение и автоматическая установка SSL-сертификата Let's Encrypt

Для операционной системы Windows идеальным инструментом автоматизации работы с Let's Encrypt является бесплатная утилита с открытым исходным кодом Win-ACME (ранее известная как WACS — Windows ACME Simple). Она не требует глубоких знаний консоли и способна самостоятельно настроить IIS.

Выполним генерацию сертификата по шагам:

  1. Скачаем последнюю версию Win-ACME с официального сайта проекта.
  2. Распакуем архив в системную папку на сервере (например, в C:\Tools\Win-ACME).
  3. Запустим файл wacs.exe от имени Администратора. Откроется интерактивное текстовое меню утилиты.
  4. Для создания нового сертификата с дефолтными настройками введем команду N (Create certificate (simple)).
  5. Утилита просканирует настроенные сайты в IIS и предложит выбрать нужный. Если у вас один стандартный сайт (Default Web Site), выберите его из списка (обычно под номером 1).
  6. Далее программа отобразит список доменных имен, привязанных к этому сайту. Выберите ваше доменное имя (например, 1c.mycompany.ru).
  7. После этого Win-ACME предложит ввести адрес электронной почты для отправки уведомлений о состоянии сертификата и попросит согласиться с условиями использования. Введите адрес и подтвердите согласие.

После этого утилита автоматически выполнит следующие действия:

Шаг 5. Тонкая настройка безопасности и протоколов шифрования

Иногда при обмене тяжелыми пакетами данных между 1С и Битрикс24 могут возникать обрывы соединений. Зачастую это связано с тем, что IIS по умолчанию пытается использовать устаревшие или небезопасные протоколы шифрования.

Рекомендуется принудительно отключить небезопасные протоколы TLS 1.0 и TLS 1.1, оставив включенными только современные стандарты безопасности: TLS 1.2 и TLS 1.3.

Для этого очень удобно использовать бесплатную утилиту IIS Crypto от компании Nartac Software:

  1. Скачайте и запустите IIS Crypto на вашем сервере IIS.
  2. Нажмите кнопку Best Practices. Программа автоматически выставит оптимальные настройки безопасности, отключит устаревшие шифры (Ciphers) и протоколы (такие как SSLv3, TLS 1.0).
  3. Убедитесь, что в списке протоколов отмечен TLS 1.2 (и TLS 1.3, если операционная система вашего сервера его поддерживает).
  4. Нажмите кнопку Apply и перезагрузите сервер для применения изменений в системном реестре Windows.

Альтернативный вариант: Использование Nginx в качестве обратного прокси

Рассмотрим еще одну профессиональную схему публикации баз данных, которая пользуется большой популярностью у системных администраторов крупных инфраструктур. Это использование веб-сервера 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;
    }
}

Проверка выполненной работы

После завершения всех настроек выполним проверку доступности нашей публикации:

  1. Откройте веб-браузер на внешнем устройстве (например, на смартфоне вне локальной сети компании) и перейдите по адресу: https://1c.mycompany.ru/trade.
  2. Убедитесь, что в адресной строке браузера появился значок закрытого замка, подтверждающий успешное шифрование соединения. Кликнув по замку, вы можете убедиться, что сертификат выдан доверенным центром Let's Encrypt.
  3. После ввода логина и пароля пользователя 1С должна успешно загрузиться веб-страница тонкого или веб-клиента.
  4. Теперь адрес https://1c.mycompany.ru/trade можно смело прописывать в настройках интеграции модуля Битрикс24 — облачный сервис без проблем подключится к вашей базе данных по защищенному каналу.
← На главную