ЭЦП и подписи

Ошибка при подписании XML: частые причины и решения 2026

Мария Ж. 15 мин чтения

Ошибка при подписании XML возникает чаще всего не из-за самого файла, а из-за окружения: лицензия криптопровайдера, версия плагина, неустановленная цепочка сертификатов, неверная кодировка или тип подписи. В этом материале я разобрала причины по группам — от банального истёкшего ключа КриптоПро CSP до тонкостей с canonicalization и форматом XAdES, и для каждой дала конкретное действие, которое чинит проблему. Если вы только разбираетесь с тем, как вообще формируется такая подпись, посмотрите базовый разбор про подписание XML-файла электронной подписью, где описан весь процесс от выбора программы до получения готового sig-файла.

Автор статьи — Мария Ж, юрист со стажем более 20 лет, соучредитель сервиса КЭДО Добыто, спикер на конференциях по КЭДО и юриспруденции, судебный эксперт в сфере корпоративного и трудового права. Занимается наймом персонала более 13 лет. Автор более 1000 статей о цифровой подписи, трудовом праве, КЭДО и HR.

Почему XML вообще ломается при подписании чаще других форматов

XML — это не картинка и не PDF, где байты лежат как лежат. Это структурированный текст, и подпись считается по хешу от конкретной канонической формы документа. Меняется хоть один пробел, перенос строки, порядок атрибутов или объявление кодировки — меняется хеш, и подпись либо не формируется, либо потом не проходит проверку. Отсюда и львиная доля ошибок. Народ привык: ЭЦП на ворде поставил и забыл. С иксэмэлькой так не выйдет.

Вторая засада — сам инструмент. КриптоПро CSP это криптопровайдер, движок. Сам по себе он произвольный файл не подписывает, в нём для этого просто нет функционала. Нужна надстройка: КриптоАРМ, КриптоПро ЭЦП Browser plug-in, утилита cptools или встроенный механизм информационной системы (1С, СМЭВ-адаптер, кабинет ФНС). Если человек пытается подписать XML одной только установленной CSP — он упирается в стену, и это не ошибка файла, это ошибка инструмента. В практике Добыто мы видим этот затык у каждого второго ИТ-специалиста, который первый раз готовит XML для Росреестра или СФР.

Мария Ж, специалист по цифровой подписи и КЭДО:
«Самая частая жалоба звучит так: всё установлено, серт видно, а XML не подписывается. В девяти случаях из десяти забыли поставить крипто-плагин или сама КриптоПро видит закрытку, но лицензия CSP уже истекла. Сначала проверяем эти две вещи, и только потом лезем в кодировки и хеши.»

Истёкшая лицензия и устаревшая версия КриптоПро CSP

Классика. На вкладке «Общие» в КриптоПро CSP в строке «Лицензия» написано «Истекла» — и любая попытка подписать упирается в «Ошибка исполнения функции» или сертификат вдруг «не найден», хотя физически он на месте. Лечится вводом действующего лицензионного ключа на рабочее место либо покупкой новой лицензии. На Mac то же самое смотрится в «Инструменты КриптоПро» — «Общее», срок действия.

Отдельная тема — версия. КриптоПро CSP 4.0 имел сертификат соответствия ФСБ, который действовал до 15 января 2026 года. Дальше — только пятая линейка. Для работы с машиночитаемой доверенностью и подписанием XML под современные алгоритмы ГОСТ 2012 нужна версия не ниже 5.0 R2, а лучше 5.0 R3 со встроенным браузерным плагином. Если у вас на машине крутится старая четвёрка, часть XML-сценариев (СЭДО СФР, новые форматы МЧД) просто не отработает. Обновляйтесь до пятёрки, это не блажь регулятора, это требование совместимости с алгоритмами кузнечик и магма, на которые уже переходят и банки, и ведомства.

Просмотр установленных сертификатов в окне КриптоПро CSP

Нет плагина, конфликт версий плагина и провайдера

Когда подписание идёт через браузер (кабинет ФНС, электронная площадка, веб-форма ведомства), нужны два компонента сразу: КриптоПро ЭЦП Browser plug-in на самом компьютере и расширение CryptoPro Extension for CAdES Browser Plug-in в браузере. Первый даёт сайту прочитать и сформировать подпись, второе — разрешает браузеру эту подпись поставить. Нет одного из них — вылезает «Установите программное обеспечение» или список сертификатов просто пустой.

Хуже, когда оба стоят, но разных поколений. Конфликт версий крипто-плагина в браузере и самой cptools — распространённая причина того, что подпись срывается без внятного текста ошибки. Решение скучное, но рабочее: снести плагин и расширение, поставить актуальные версии с сайта КриптоПро, перезапустить браузер. И обязательно проверить связку на тестовой странице КриптоПро — там есть кнопка проверки работы плагина.

Настройка плагина КриптоПро для подписания в браузере

Мария Ж, юрист со стажем более 20 лет:
«Когда подпись срывается в браузере без всякого текста, я первым делом прошу открыть тестовую страницу КриптоПро и нажать проверку плагина. Это экономит часы. Если там крипто-плагин зелёный, а на боевом сайте красный — значит дело уже в самом ресурсе или в МЧД, а не в вашей машине.»

Цепочка сертификатов и проблема ФЛ против ЮЛ

Откройте серт в хранилище личных сертификатов, вкладка «Путь сертификации». Там должна выстроиться цепочка до корневого удостоверяющего центра — без красных крестиков. Если в цепочке висит только ваш серт и больше ничего, корневые и промежуточные сертификаты УЦ не установлены. XML такой подписью либо не подпишется, либо подпись потом завернут на приёмке. Скачиваете корневой серт у выдавшего УЦ, ставите, цепочка собирается — подпись проходит.

Вторая ловушка касается тех, кто подписывает XML по доверенности. Частая ошибка: пытаются документом, выпущенным на физлицо, подписать XML организации. Система возвращает отказ, потому что для действий от юрлица нужен либо серт руководителя, либо серт сотрудника плюс машиночитаемая доверенность. Если МЧД не добавлена в профиль или данные подписанта в ней не совпадают с сертификатом — подпись не пройдёт. Тут важно: любое изменение xml-файла доверенности ломает подпись. Дополнили полномочия задним числом, поправили один символ — это уже новая МЧД, старую подпись восстановить нельзя.

Образцы документов для работы с электронной подписью

Открыть список документов
Документ Скачать
Инструкция по установке ЭЦП на компьютер Скачать
Ответы на вопросы об установке ЭЦП Скачать
Памятка по настройке КЭП для налоговой Скачать
Криптографическая защита информации (методология) Скачать
Заявление на выпуск квалифицированного сертификата ЭП Скачать
Заявление на аннулирование сертификата ЭП Скачать
Доверенность на получение сертификата ЭП Скачать
Согласие на обработку ПДн для выпуска сертификата ЭП Скачать
Соглашение об использовании ПЭП и НЭП Скачать
Руководство пользователя по сервису Добыто КЭДО Скачать

Неверная кодировка, тип подписи и формат XAdES

Вот где XML действительно отличается от остальных форматов. Приёмная сторона почти всегда жёстко задаёт три параметра: тип подписи (отсоединённая или присоединённая), кодировку (DER или BER) и формат (CAdES или XAdES). Промахнулись хоть в одном — файл уйдёт, а на приёмке его развернут.

Самый известный пример — Росреестр. Там принимают только отсоединённую подпись в кодировке DER. Это, кстати, параметры по умолчанию в КриптоАРМ, но люди их меняют и потом удивляются. Отсоединённая подпись формируется отдельным файлом рядом с XML, с расширением .sig, .sgn или .p7s. Имя файла подписи совпадает с именем документа. И тут грабли номер один: эти два файла нельзя переименовывать и нельзя слать по отдельности. Орган кадастрового учёта, СМЭВ, большинство ведомств принимают строго пару — оригинал плюс файл подписи. Один файл без второго = отказ.

Для веб-сервисов и СМЭВ часто требуется не CAdES, а именно XAdES — подпись внутри самого XML-документа по стандарту XML Digital Signature. Если информационная система ждёт XAdES, а вы сформировали обычную отсоединённую CAdES-подпись через КриптоАРМ — получите ошибку обработки цифровой подписи XML, типовой код вроде 0x800705BA с текстом «An error was encountered while processing an XML digital signature». Это не про повреждённый серт. Это про то, что формат подписи не тот, который ждёт принимающая сторона. Разбираться, какой именно тип нужен — отсоединённая или присоединённая, какой формат — надо до подписания, по регламенту той системы, куда грузите. Если интересно, как формируется именно отделённый вариант, есть подробный разбор про то, как создать отсоединённую подпись в КриптоПро с правильными параметрами.

Мария Ж, судебный эксперт по трудовому праву:
«С XML работает железное правило: сначала читаем регламент приёмной системы, потом подписываем. У меня был кейс, когда айтишник три дня воевал с подписью для СФР, а оказалось, что вся проблема в галочке шифрования сообщений и в тестовом адресе TSP-сервера. Поменяли на боевой — всё взлетело. Логику в требованиях ведомств искать бессмысленно, их нужно просто выполнить.»

Метки времени, TSP-сервер и усовершенствованная подпись

Когда XML подписывается усовершенствованной подписью (CAdES-T, CAdES-X, XAdES-T) с меткой времени, в дело вступает TSP-сервер. Если в настройках программы стоит тестовый адрес службы штампов времени или сервер недоступен из-за прокси — подпись не сформируется, программа выдаст ошибку создания XML-документа без внятных деталей. Боевой адрес службы меток времени КриптоПро — http://qs.cryptopro.ru/tsp/tsp.srf. Тестовые адреса в продакшен совать нельзя. И если в организации есть прокси — его на время подписания нужно пробросить мимо, иначе запрос к TSP просто не уйдёт.

Отдельно про невнятные ошибки. КриптоАРМ и СЭДО-клиенты часто не показывают человеческий текст, а пишут что-то общее. Реальная причина лежит в логе программы — например, в файле arm-mchd.log в папке приложения. Листаете в конец, там настоящий текст ошибки. Иногда он даже на испанском, не пугайтесь, переводите и читаете суть.

Когда XML-подпись срывается на боевой приёмке за час до дедлайна, разбираться в кодировках, форматах XAdES и логах TSP-сервера в одиночку — то ещё удовольствие. В сервисе Добыто настройка подписания и проверка готовых файлов уже обкатаны на сотнях разных приёмных систем, и мы знаем, какие параметры ждёт конкретное ведомство.

Попробуйте ДОБЫТО КЭДО

Следите за нашими каналами

Никакой воды — только важное и новости первыми.

Как подписать XML и не получить ошибку: пошаговая инструкция

Показать пошаговую инструкцию
  1. Шаг 1. Проверьте лицензию КриптоПро CSP на вкладке «Общие» и версию — для XML и МЧД нужна не ниже 5.0 R2.
  2. Шаг 2. Откройте серт в хранилище, вкладка «Путь сертификации», убедитесь, что цепочка до корневого УЦ строится без красных крестиков.
  3. Шаг 3. Уточните в регламенте приёмной системы три параметра: тип подписи (отсоединённая/присоединённая), кодировку (DER/BER), формат (CAdES/XAdES).
  4. Шаг 4. В КриптоАРМ выставьте эти параметры в настройках подписи, для усовершенствованной подписи укажите боевой адрес TSP-сервера.
  5. Шаг 5. Подпишите файл, не переименовывайте получившийся sig-файл и отправляйте оригинал вместе с подписью одной парой.

Самый частый сценарий ошибки и как его обойти

Если свести всё к одному: большинство сорванных подписей XML — это не про криптографию, а про несовпадение того, что вы сформировали, с тем, что ждёт приёмная сторона. Поэтому проверять надо не файл, а пару файл-плюс-окружение. У нас в сервисе Добыто есть простой принцип: перед боевой отправкой XML всегда прогоняем подпись через проверку, чтобы увидеть статус до того, как ведомство развернёт документ. Это снимает половину ночных авралов у ИТ-отдела.

Проверка электронной подписи онлайн — сервис Добыто

notify

certificate Проверка электронной подписи

Загрузите файл подписи или пару файлов для открепленной подписи.
Сервис проверит целостность подписи и покажет сведения о сертификате.

1 Выберите тип подписи:

Для присоединенной подписи нужен один файл. Для открепленной проверки требуются документ и файл подписи.

2 Загрузите документ и подпись:

Документ

Файл подписи

Подписать документ электронной подписью онлайн

notify

1 Загрузите необходимые файлы:
2 Выберите электронную подпись:

Проверить статус готовой подписи на стороне государства можно и через сервис проверки на портале Госуслуг — туда загружаете оригинал и файл подписи, получаете заключение о действительности. Удобно, когда нужно убедиться, что проблема не в вашем серте.

Интерфейс КриптоАРМ для подписания и шифрования XML-документов

Стоимость подписания и проверки XML в сервисе Добыто

Стоимость зависит от численности сотрудников, выбранного тарифа и набора подключаемых функций — подпись, проверка, электронный архив, интеграция с учётной системой. Ниже основные тарифы сервиса КЭДО Добыто, в которых доступна работа с электронной подписью и подписание документов разных форматов.

Тариф Стоимость Условия
Старт (ПЭП и УНЭП, базовые шаблоны) от 30 ₽ за сотрудника / мес до 25 сотрудников
Бизнес (ПЭП, УНЭП и УКЭП, интеграция с 1С, архив) от 50 ₽ за сотрудника / мес от 50 сотрудников, 30 000 ₽ в год
Корпорация (выделенный сервер, SLA 99.9%, API) По запросу персональный менеджер

Итоговая сумма складывается из численности персонала и набора модулей под ваши задачи, поэтому точную цифру лучше считать под конкретный сценарий — актуальные тарифы сервиса Добыто помогут сориентироваться, какой тариф закрывает работу с нужными вам форматами подписи.

Мария Ж, соучредитель сервиса КЭДО Добыто:
«Часто ИТ-специалист пытается налепить на XML дорогую УКЭП через флешку и токен, хотя для внутреннего документооборота хватило бы УНЭП. Сначала определяемся, какой вид подписи реально требует приёмная система, и только потом считаем денюжки. Это другие совсем затраты для компании.»

Выводы: как закрыть ошибки при подписании XML

Ошибка при подписании XML почти всегда лежит в окружении, а не в самом файле. Сначала проверяют лицензию и версию КриптоПро CSP (для XML и МЧД нужна не ниже 5.0 R2), затем наличие крипто-плагина и расширения CAdES в браузере, потом цепочку сертификатов до корневого УЦ. Если эти три уровня в порядке, причина уходит в специфику формата.

Следите за нашими каналами

Никакой воды — только важное и новости первыми.

Главное в работе с XML — заранее узнать три параметра приёмной системы: тип подписи, кодировку и формат CAdES или XAdES. Для Росреестра это отсоединённая подпись в кодировке DER, для СМЭВ нередко XAdES внутри документа. Файл подписи и оригинал отправляют строго парой, sig-файл не переименовывают, а любое изменение XML после подписания обнуляет подпись. Для усовершенствованной подписи указывают боевой TSP-сервер и пробрасывают прокси.

Невнятные ошибки без текста читают в логе программы, а не гадают по интерфейсу. Перед боевой отправкой подпись прогоняют через проверку, чтобы увидеть статус до того, как документ развернёт ведомство. Такой порядок снимает большую часть инцидентов с XML-подписью.

Часто задаваемые вопросы

Можно ли подписать XML одной только КриптоПро CSP?
Нет. КриптоПро CSP — это криптопровайдер, движок, в нём нет функционала для подписания произвольных файлов. Для XML нужна надстройка: КриптоАРМ, утилита cptools, КриптоПро ЭЦП Browser plug-in или встроенный механизм информационной системы (1С, СМЭВ-адаптер, кабинет ФНС).
Что значит ошибка 0x800705BA при подписании XML?
Текст «An error was encountered while processing an XML digital signature» обычно означает, что формат подписи не совпадает с тем, который ждёт приёмная система, либо нарушена структура XML. Проверьте, какой формат требует ведомство — CAdES или XAdES, и не менялся ли файл после формирования подписи.
Почему подпись XML не проходит проверку на приёмке, хотя файл подписался?
Чаще всего сменили кодировку или тип подписи. Для Росреестра нужна отсоединённая подпись в кодировке DER, для СМЭВ — формат XAdES. Также проверьте, что не переименовали sig-файл и отправляете оригинал вместе с подписью одной парой.
Какая версия КриптоПро нужна для подписания XML и МЧД?
Для современных алгоритмов ГОСТ 2012, работы с МЧД и СЭДО СФР нужна КриптоПро CSP не ниже 5.0 R2, оптимально 5.0 R3 со встроенным браузерным плагином. Сертификат соответствия на версию 4.0 действовал до 15 января 2026 года.
В чём разница между отсоединённой и присоединённой подписью XML?
Отсоединённая подпись формируется отдельным файлом (.sig, .sgn или .p7s) рядом с XML — оригинал остаётся читаемым, но отправлять нужно оба файла. Присоединённая помещает документ и подпись в один файл-контейнер, который без криптопрограммы не прочитать. Какой вариант нужен — задаёт приёмная система.
Почему браузер не видит сертификат при подписании XML?
Не установлен один из двух компонентов: КриптоПро ЭЦП Browser plug-in на компьютере или расширение CryptoPro Extension for CAdES Browser Plug-in в браузере. Проверьте оба, перезапустите браузер и протестируйте связку на тестовой странице КриптоПро. Часто причина — конфликт версий плагина и cptools.
Что делать, если появляется «Ошибка исполнения функции»?
Чаще всего это истёкшая или невведённая лицензия КриптоПро CSP. Откройте программу, вкладка «Общие», проверьте строку «Лицензия». Если написано «Истекла» — введите действующий ключ или приобретите лицензию на рабочее место. Заодно убедитесь, что серт установлен в личное хранилище.
Можно ли исправить XML после подписания?
Нет. Любое изменение xml-файла — даже один символ, пробел или порядок атрибутов — ломает подпись, потому что меняется хеш канонической формы документа. Если нужно поправить содержимое, документ подписывают заново. Для МЧД это означает выпуск новой доверенности.
Почему подпись XML по доверенности возвращает отказ?
Часто подписывают сертификатом физлица документ организации без машиночитаемой доверенности или с МЧД, где данные подписанта не совпадают с сертификатом. Проверьте, что ФИО, ИНН и СНИЛС в доверенности и в открытом ключе сертификата полностью совпадают, и что МЧД добавлена в профиль.
Куда смотреть, если программа не выдаёт текст ошибки?
В лог-файл программы. У клиента МЧД это файл arm-mchd.log в папке приложения — листаете в конец, там настоящий текст ошибки. Для усовершенствованной подписи проверьте адрес TSP-сервера: боевой адрес КриптоПро http://qs.cryptopro.ru/tsp/tsp.srf, тестовые адреса в продакшен ставить нельзя, и прокси нужно пробросить мимо.
Какой кодировкой подписывать XML для Росреестра?
Росреестр принимает отсоединённую подпись в кодировке DER — это параметры по умолчанию в КриптоАРМ. Если их случайно сменили на BER или на присоединённый тип, документ развернут на приёмке. Перед отправкой проверьте настройки подписи в разделе «Подпись».
Как проверить, что проблема не в сертификате?
Загрузите оригинал и файл подписи в сервис проверки на портале Госуслуг или в онлайн-проверку Добыто. Если подпись действительна и серт прошёл проверку, значит дело в формате или параметрах для конкретной приёмной системы, а не в вашем ключе.

Если работа с XML-подписью превратилась в постоянный затык — то приёмка разворачивает файл, то плагин конфликтует, то формат не тот — имеет смысл закрыть этот процесс системно. Сервис Добыто настраивает подписание и проверку документов разных форматов, включая XML, PDF и контейнеры с несколькими файлами, и держит юридическую значимость по 63-ФЗ и 377-ФЗ.

За время работы мы подключили инфраструктуру подписи под сотни сценариев и знаем требования разных приёмных систем к типу подписи, кодировке и формату. Это снимает с ИТ-отдела ручной перебор настроек перед каждой отправкой.

  • Поддержка всех трёх видов подписей — ПЭП, УНЭП, УКЭП — под любой документ и формат
  • Проверка готовой подписи до отправки в ведомство, с протоколом и отметками времени
  • Вся цепочка подписей фиксируется с метками времени — защита при проверках и в суде
  • Готовый коннектор с 1С (ЗУП, ERP, бухгалтерия) — ставится за час без разработчиков
  • Три вида поставки — облачная, on-premise, гибридная — под требования ИБ и VPN-периметра
  • Юридическая значимость по 63-ФЗ и 377-ФЗ — электронный документ равносилен бумажному
  • Защищённые каналы, шифрование данных, соответствие 152-ФЗ, лицензии ФСТЭК и ФСБ

Оставить заявку

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться:

Попробуйте ДОБЫТО КЭДО

Подписывайте кадровые документы электронно. Оставьте заявку и начните работу.