Дата публикации:
Электронная подпись (ЭП) — это юридически значимый способ подтверждения подлинности электронного документа. Часто возникает необходимость подписать не один файл, а целый набор файлов, упакованный в архив (ZIP, RAR, 7z и др.). В этой статье мы подробно разберём, какие требования предъявляются к архиву, какие инструменты можно использовать и как выполнить подпись шаг за шагом.
Содержание
- Что такое электронная подпись и почему её используют?
- Требования к архиву и к сертификату
- Инструменты для подписи архивов
- Пошаговое руководство
- Проверка подписи
- Распространённые ошибки и их исправление
- FAQ
Что такое электронная подпись и почему её используют?
Электронная подпись — это набор криптографических данных, который привязывается к электронному документу и позволяет:
- Подтвердить подлинность автора;
- Гарантировать целостность содержимого (документ не был изменён после подписи);
- Обеспечить юридическую силу, сравнимую с рукописной подписью (при наличии квалифицированного сертификата).
Подписание архивов удобно, когда нужно передать несколько файлов (договор, счета, акты) в одном пакете, но при этом сохранить юридическую значимость всех вложений.
Требования к архиву и к сертификату
Формат архива
- Поддерживаемые форматы: ZIP, RAR, 7z. Некоторые сервисы работают только с ZIP.
- Архив не должен быть зашифрованным — подпись невозможна, если содержимое скрыто паролем.
- Размер архива обычно ограничен 2 ГБ (зависит от выбранного инструмента).
Сертификат электронной подписи
- Квалифицированный сертификат (выданный удостоверяющим центром, аккредитованным в России) — это гарантирует юридическую силу подписи.
- Сертификат может храниться в виде файла PKCS#12 (.p12/.pfx) или в аппаратном токене/смарт‑карте.
- Для работы с сертификатом понадобится пароль (для файла) или PIN‑код (для токена).
Инструменты для подписи архивов
Существует несколько популярных решений, которые позволяют подписать архив электронной подписью:
| Инструмент | Тип установки | Поддерживаемые форматы | Платность | Краткое описание |
|---|---|---|---|---|
| КриптоПро CSP | Десктопное приложение + драйвер | ZIP, RAR, 7z | Коммерческий (есть демо‑версия) | Самый распространённый в России. Позволяет подписать файл через контекстное меню Проводника. |
| SignServer (OpenSource) | Серверное приложение (Java) | ZIP, RAR, 7z | Бесплатно (GPL) | Подходит для массовой пакетной подписи через REST‑API. |
| ЭЦП‑Клиент (Госуслуги) | Веб‑клиент + приложение | ZIP | Бесплатно | Позволяет подписать документ онлайн без установки программного обеспечения. |
| OpenSSL + CMS | Командная строка | Любой (только после упаковки в ZIP) | Бесплатно | Гибкое решение для тех, кто умеет работать в терминале. |
Выбор инструмента зависит от ваших потребностей: одноразовая подпись — подойдёт КриптоПро, массовая автоматизация — SignServer, а для простого онлайн‑подписания — ЭЦП‑Клиент.
Пошаговое руководство
Подготовка архива
- Соберите все необходимые файлы в одну папку.
- Убедитесь, что файлы не защищены паролем.
- Создайте архив (рекомендовано ZIP) через Проводник Windows:
- Выделите файлы → правой кнопкой → Отправить → Сжатая ZIP‑папка.
- Проверьте размер архива (не превышает лимит выбранного инструмента).
Подпись с помощью КриптоПро CSP (самый простой способ)
- Установите КриптоПро CSP и подключите токен/смарт‑карту (или импортируйте файл .p12).
- Откройте Проводник, найдите ваш
.zip‑файл. - Щёлкните правой кнопкой мыши → Подписать электронно → выберите сертификат.
- В появившемся окне укажите:
- Тип подписи: Квалифицированная электронная подпись (КЭП).
- Алгоритм хеширования: SHA‑256 (рекомендовано).
- Нажмите Подписать. После завершения рядом появится файл
имя_файла.zip.p7s— это подпись в формате CMS.
Подпись через онлайн‑сервис ЭЦП‑Клиент
- Перейдите на сайт ЭЦП‑Клиент.
- Авторизуйтесь через Госуслуги.
- Выберите пункт Подписать файл → загрузите ваш
.zip. - Выберите сертификат (если он хранится в токене, подключите его к компьютеру).
- Нажмите Подписать. Система сгенерирует файл
.zip.p7sи предложит скачать.
Пакетная подпись через SignServer (для IT‑специалистов)
curl -X POST https://signserver.example.com/sign
-F "file=@/path/to/archive.zip"
-F "certId=12345"
-F "hashAlg=SHA256"
-o archive.zip.p7s
После выполнения получите файл archive.zip.p7s. Его можно распределять вместе с архивом.
Подпись через OpenSSL (для продвинутых пользователей)
# 1. Конвертируем сертификат и закрытый ключ в PEM (если они в PFX)
openssl pkcs12 -in cert.pfx -out cert.pem -nodes
openssl cms -sign -in archive.zip -out archive.zip.p7s
-signer cert.pem -inkey cert.pem -outform DER -binary -md sha256
Файл archive.zip.p7s готов к передаче.
Как проверить подпись архива
Проверка гарантирует, что подпись действительна и документ не был изменён.
Через КриптоПро CSP
- Щёлкните правой кнопкой по файлу
.zip.p7s→ Проверить подпись. - В окне проверки отобразятся:
- Статус подписи (валидна/недействительна);
- Срок действия сертификата;
- Алгоритм хеширования.
Онлайн‑проверка на сайте КриптоПро
Загрузите архив и файл подписи, система покажет результат.
Командой OpenSSL
openssl cms -verify -in archive.zip.p7s -content archive.zip -noverify
Если подпись корректна, вывод будет «Verification successful». При ошибке появятся детали.
Распространённые ошибки и их исправление
- Ошибка: «Сертификат просрочен»
- Проверьте срок действия сертификата в личном кабинете УЦ.
- Если сертификат истёк, запросите новый у удостоверяющего центра.
- Ошибка: «Файл зашифрован паролем»
- Разархивируйте, удалите пароль и создайте новый архив без защиты.
- Ошибка: «Алгоритм подписи не поддерживается»
- Выберите SHA‑256 или SHA‑384 вместо устаревшего SHA‑1.
- Ошибка: «Не найден токен/смарт‑карта»
- Убедитесь, что драйвер токена установлен и устройство подключено.
- Перезапустите приложение и повторите попытку.
Часто задаваемые вопросы (FAQ)
- Можно ли подписать архив, если в нём находятся исполняемые файлы?
- Да, подпись не зависит от типа вложений. Главное — чтобы архив не был зашифрован.
- Нужен ли отдельный файл подписи или подпись встраивается в архив?
- Стандартный способ — создание отдельного файла
.p7s. Встраивание подписи в архив (например, в виде метаданных) поддерживается только специализированными решениями и не рекомендуется для юридических целей. - Можно ли подписать несколько архивов одной подписью?
- Нет. Каждая подпись привязывается к конкретному набору байтов, поэтому каждый архив требует отдельной подписи.
- Какой срок действия подписи?
- Подпись считается действительной до истечения срока действия сертификата, использованного для её создания.
- Можно ли отозвать подпись?
- Отозвать подпись напрямую нельзя, но можно отозвать сертификат в реестре УЦ. После отзыва все подписи, сделанные этим сертификатом, считаются недействительными.
Подписание архивов электронной подписью — это надёжный способ обеспечить юридическую силу группы файлов без необходимости печатать каждый документ. Главное помнить о следующих моментах:
- Использовать квалифицированный сертификат и актуальный токен/смарт‑карту.
- Архив не должен быть зашифрован и должен соответствовать поддерживаемому формату (рекомендовано ZIP).
- Выбирать проверенный инструмент (КриптоПро, SignServer, ЭЦП‑Клиент или OpenSSL).
- После подписи обязательно проверить её валидность.
Следуя описанным выше шагам, вы сможете быстро и безопасно подписать любой архив, а полученный файл .p7s будет признан юридически значимым в России и за её пределами.
Удачной подписи!