EAMForge Склад

HTTPS для сервиса ТСД

Терминал отправляет в 1С логин и пароль кладовщика. По http они идут открытым текстом — их видит любой на пути. Ниже — как перевести сервис на защищённое соединение бесплатным сертификатом, по шагам.

← вернуться на страницу приложения

Нужно ли это вам

Зависит от того, откуда терминалы подключаются к 1С.

Как работают терминалыЧто делать
Только в Wi-Fi склада, сервер наружу не смотрит Сертификат не обязателен. Самый безопасный вариант — вообще не открывать сервер в интернет
Терминалы выходят через интернет: разъездная приёмка, второй склад, курьеры HTTPS обязателен. Иначе пароли сотрудников идут по сети открытым текстом, а сервис 1С доступен всему интернету
Сервер уже опубликован наружу по домену, но по http Самый частый случай. Основное уже настроено — остаётся сертификат, работы на полчаса
Отдельно про Android. Приложение не примет самоподписанный сертификат — тот, что «сделали сами» без центра сертификации. Соединения просто не будет. Нужен сертификат от доверенного центра; бесплатный Let’s Encrypt подходит полностью.

Что понадобится

Порядок работ

Именно в этом порядке: если выпустить QR-код для терминалов раньше сертификата, придётся пересканировать все устройства заново — адрес поменяется с http на https.

  1. Домен указывает на ваш IP

    В панели управления доменом добавьте A-запись: имя tsd, значение — внешний IP-адрес вашего интернет-канала. Через несколько минут проверьте с любого компьютера:

    nslookup tsd.вашафирма.kz

    В ответе должен быть ваш внешний адрес.

  2. Проброс портов на роутере

    Пробросьте на внутренний адрес сервера с 1С два порта:

    • 443 — основной, по нему пойдёт защищённый трафик;
    • 80 — нужен только на время выпуска и продления сертификата, Let’s Encrypt проверяет владение доменом именно через него.
    Если 80-й порт уже занят другим сайтом, сертификат можно выпустить и проверкой через DNS — тогда пробрасывать 80 не нужно вовсе.
  3. Выпуск сертификата

    На сервере с Windows проще всего утилитой win-acme: она получает сертификат Let’s Encrypt, сама привязывает его к сайту и настраивает автоматическое продление каждые 60 дней.

    wacs.exe

    В меню выбрать создание сертификата для сайта IIS, указать домен tsd.вашафирма.kz и согласиться на автоматическое продление. Для Apache сертификат выпускается так же, но прописывается в конфигурации вручную — SSLCertificateFile и SSLCertificateKeyFile.

    Сертификат живёт 90 дней. Продление должно быть автоматическим — win-acme создаёт задание в планировщике сам. Если его отключить, через три месяца терминалы перестанут подключаться в один день.
  4. Привязка к сайту

    В диспетчере IIS: сайт → «Привязки» → добавить https, порт 443, имя узла tsd.вашафирма.kz, выбрать выпущенный сертификат. Если win-acme отработал — привязка уже создана, достаточно проверить.

  5. Проверка

    С сервера — что публикация отвечает по защищённому адресу:

    https://tsd.вашафирма.kz/tsd/hs/eamtsd/v1/health

    Ожидается ответ со словами "success": true. Затем то же самое с телефона по мобильному интернету, не по Wi-Fi склада — это проверяет всю цепочку целиком: домен → роутер → веб-сервер → 1С.

    Замок в адресной строке браузера без предупреждений означает, что сертификат доверенный и Android его примет.
  6. Перевод терминалов

    В мастере установки укажите в поле «Внешний URL API» защищённый адрес:

    https://tsd.вашафирма.kz/tsd/hs/eamtsd/v1

    Нажмите «Проверить связь», затем создайте QR-код и отсканируйте его на каждом терминале: экран входа → «Подключить 1С по QR».

    Мастер по умолчанию подставляет в это поле IP-адрес сервера — он про домен не знает. Замените его вручную до создания QR, иначе терминалы будут работать только внутри локальной сети.
  7. Закрыть незащищённый доступ

    Когда терминалы переведены и работают, оставлять открытым обычный http незачем: настройте на веб-сервере перенаправление на https либо закройте 80-й порт снаружи. Если сертификат продлевается проверкой через порт 80, оставьте открытым только его, а сервис 1С отдавайте исключительно по 443.

Если что-то не так

Что видноОбычная причина
по http работает,
по https нет
Не проброшен порт 443 на роутере либо нет привязки https у сайта
браузер ругается
на сертификат
Сертификат самоподписанный или выпущен на другое имя. Проверьте, что домен в сертификате совпадает с адресом, по которому обращаетесь
в браузере открывается,
терминал не подключается
В приложении сохранён неполный адрес — без /имя_публикации/hs/eamtsd/v1. Проще всего перевыпустить QR
работало, перестало
через три месяца
Истёк сертификат, автопродление не сработало. Проверьте задание win-acme в планировщике
выпуск сертификата
не проходит
Let’s Encrypt не достучался до сервера по 80-му порту снаружи. Проверьте проброс и что домен указывает на нужный IP
Если терминалы работают только внутри склада, всё это можно не делать — достаточно закрепить за сервером постоянный адрес в локальной сети. Но тогда и наружу сервер открывать не нужно.