1С: Настройка безопасного обмена данными по FTPS (FTP over SSL/TLS)
Уязвимости стандартного FTP и необходимость перехода на FTPS
Классический протокол FTP передает данные учетных записей (логины, пароли) и файлы конфигураций/выгрузок информационных баз 1С в открытом незашифрованном виде. Злоумышленник может перехватить коммерческие данные через сниффинг трафика. При попытке настроить защищенный обмен в 1С часто возникают ошибки: Ошибка работы с Интернет: Аутентификация не прошла или Ошибка защищенного соединения SSL/TLS.
| Тип подключения | Шифрование данных | Порты по умолчанию |
|---|---|---|
| Стандартный FTP | Отсутствует (Clear text) | TCP 21 (команды), TCP 20 (данные) |
| Явный FTPS (Explicit / FTPES) | TLS/SSL по команде AUTH TLS | TCP 21 (управляющий), пассивный диапазон портов |
| Неявный FTPS (Implicit FTPS) | TLS/SSL сразу при подключении | TCP 990 (команды), TCP 989 (данные) |
Инструкция по настройке обмена данными FTPS в 1С:Предприятие
- Подготовка FTP-сервера с поддержкой TLS (FileZilla Server / IIS FTP):
- Выпустите SSL-сертификат (Let's Encrypt или самоподписанный X.509).
- В настройках FTP-сервера включите: «Require SSL/TLS for user login» и выберите явный режим (Explicit TLS).
- Настройте диапазон пассивных портов (например,
50000-50100) и пробросьте их на внешнем маршрутизаторе.
- Добавление корневого сертификата в доверенное хранилище 1С: если используется самоподписанный сертификат, экспортируйте открытую часть в формате
.pem/.crtи добавьте его в хранилище доверенных сертификатов платформы 1С: файлcacert.pem, находящийся в директории:C:\Program Files\1cv8\8.3.X.X\bin\cacert.pem. - Настройка узла обмена в режиме «1С:Предприятие»:
- Откройте: Администрирование > Синхронизация данных > Настройки синхронизации.
- В параметрах подключения выберите «FTP-подключение».
- Укажите адрес сервера (порт 21), логин и пароль.
- Установите флажки: «Безопасное соединение (FTPS / SSL)» и «Пассивный режим».
- Программный код передачи файла по защищенному FTPS на встроенном языке 1С:
// Инициализация защищенного соединения FTPSЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();FTPПодключение = Новый FTPСоединение("ftp.domain.com", 21, "ftp_user", "Password123", , Истина, ЗащищенноеСоединение);FTPПодключение.Записать("C:\Exchange\Message_Base1_Base2.xml", "/exchange/Message_Base1_Base2.xml");
Важное отличие FTPS от SFTP: Не путайте FTPS (FTP over SSL/TLS) и SFTP (SSH File Transfer Protocol, работающий через порт 22). Встроенный объект FTPСоединение в 1С платформенно поддерживает именно FTPS. Для работы с SFTP требуются сторонние COM-объекты или внешние утилиты (WinSCP, cURL).
Частые вопросы (FAQ)
Почему 1С зависает при попытке проверки FTPS подключения?
В 95% случаев блокируется пассивный диапазон портов (Passive Ports) брандмауэром Windows или шлюзом NAT. Проверьте открытие диапазона портов данных на фаерволе сервера.
Работает ли FTPS с самоподписанными сертификатами без добавления в cacert.pem?
Нет. Встроенный клиент платформы 1С на базе библиотеки OpenSSL строго проверяет цепочку доверия и мгновенно разрывает связь с ошибкой валидации сертификата.
Какой режим FTPS предпочтительнее: Explicit или Implicit?
Стандартом RFC является явный (Explicit) режим FTPS на стандартном порту 21, так как неявный (порт 990) официально объявлен устаревшим.
Как передать параметры прокси-сервера в FTPS подключение 1С?
Объект FTPСоединение принимает параметры прокси шестым и седьмым аргументом конструктора (ИнтернетПрокси).