Часто в процессе интеграции 1С с внешними системами или мобильными приложениями возникает жесткое требование: обмен данными должен происходить строго по протоколу HTTPS. Однако настройка собственного веб-сервера (IIS или Apache) с покупкой и установкой SSL-сертификата может казаться избыточной или сложной задачей, особенно если нужно быстро протестировать функционал или если у сервера нет статического «белого» IP-адреса.
В этой статье мы подробно разберем, как решить проблему «HTTPS без сертификата» на стороне 1С, используя современные методы проксирования, туннелирования и облачные сервисы. Разберем ситуацию, когда ваш 1С-сервер отдает данные по обычному HTTP, а клиент видит их по защищенному HTTPS.
Рассмотрим ситуацию, предложенную в обсуждении. Существуют сервисы, которые выступают в роли «моста». Они предоставляют вам публичный адрес с готовым SSL-сертификатом, принимают на него запросы и пересылают их на ваш локальный сервер.
Одним из таких инструментов является специализированный VPN/Прокси сервис для 1С. Проанализируем схему его работы:
https://vash-domain.service.ru.http://localhost:80/base/hs/....Этот способ идеален, если у вас нет белого IP-адреса или сервер находится за глубоким NAT провайдера. Потребитель данных (клиент) при этом видит валидный сертификат, выданный доверенным центром сертификации на домен посредника.
Если у вас есть зарегистрированный домен и «белый» (даже динамический) IP-адрес, мы можем воспользоваться мощностями Cloudflare. Это один из самых простых способов «одеть» старый HTTP в современный HTTPS без единой строчки кода в 1С.
Разберем по шагам настройку режима Flexible SSL:
HTTPS, а от Cloudflare до вашего сервера — по обычному HTTP.A-запись, указывающую на ваш IP-адрес.Важный нюанс: поскольку соединение между Cloudflare и вашим сервером остается открытым (HTTP), этот метод подходит для данных, не имеющих критической важности, или если вы доверяете каналам связи между вашим провайдером и узлами Cloudflare. Для 1С это выглядит как обычный входящий запрос на 80-й порт.
Проанализируем ситуацию, когда установка VPN невозможна, а проброс портов на роутере закрыт. В этом случае на помощь приходят современные туннели. Рассмотрим работу с Cloudflare Tunnel (cloudflared).
Это небольшая утилита, которая устанавливается прямо на сервер с 1С и устанавливает исходящее соединение с облаком. Вам не нужно открывать порты на вход. Посмотрим, как это работает:
# Пример команды для запуска туннеля на сервере
cloudflared tunnel --url http://localhost:8080
После запуска утилита создаст временный или постоянный адрес https://unique-name.trycloudflare.com. Все запросы к нему будут мгновенно перенаправлены на ваш локальный веб-сервер 1С. Сертификат HTTPS при этом предоставляется автоматически и бесплатно.
Если вы хотите контролировать весь процесс самостоятельно и имеете доступ к настройкам сервера, мы рекомендуем установить перед веб-сервером 1С (IIS или Apache) легковесный прокси-сервер Nginx. Это стандарт де-факто в веб-разработке.
Разберем логику конфигурации nginx.conf для трансляции трафика:
server {
listen 443 ssl;
server_name your-domain.ru;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:80; # Перенаправляем на локальный HTTP-сервис 1С
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
В этой схеме Nginx берет на себя всю «тяжелую» работу по шифрованию. 1С продолжает работать по HTTP на внутреннем интерфейсе 127.0.0.1, что значительно упрощает отладку и настройку.
Если основной причиной поиска «HTTPS без сертификата» была сложность его установки и обновления, то мы предлагаем рассмотреть инструменты автоматизации Let's Encrypt. Если ваша 1С опубликована на IIS (Internet Information Services), существует прекрасная утилита Win-ACME.
Выясним преимущества этого подхода:
Важно понимать техническую суть вопроса: протокол HTTPS по определению требует наличия сертификата для проверки подлинности сервера и согласования ключей шифрования. Если ни одна из сторон (ни ваш сервер, ни посредник) не предъявит сертификат, браузер или система WinHTTP в 1С у клиента просто разорвет соединение с ошибкой безопасности.
Поэтому решение задачи всегда сводится к одному из двух вариантов: либо мы ставим сертификат у себя (используя автоматизацию типа Win-ACME), либо мы делегируем эту обязанность посреднику (Cloudflare, Ngrok, специализированные 1С-прокси), который «заворачивает» наш незащищенный HTTP-трафик в свою HTTPS-оболочку.
Мы проанализировали различные подходы к публикации сервисов 1С. Если вам нужно быстрое и бесплатное решение «здесь и сейчас», лучше всего воспользоваться Cloudflare Tunnel или Ngrok. Если же вы строите надежную корпоративную инфраструктуру, оптимальным выбором будет связка Nginx + Let's Encrypt или настройка автоматического получения сертификатов на IIS. Помните, что безопасность данных ваших клиентов должна стоять на первом месте, даже если настройка HTTPS кажется сложной на первый взгляд.