Открыть и подписать XML с электронной подписью можно несколькими способами — всё зависит от того, что за файл и куда вы его отправляете. Просмотреть содержимое XML получится в обычном браузере или Блокноте, а вот подпись — отдельная история: для XML существуют два разных подхода, отделённая подпись рядом с файлом и встроенная подпись внутри самого XML. Разберём, какими программами открывают XML, чем отличается подпись для ФНС от подписи для СМЭВ, какие форматы выбирать и как не получить на выходе нечитаемый документ. Это часть большого материала про то, как подписать XML-файл электронной подписью, где процесс разобран от выбора программы до проверки готовой подписи.
Автор статьи — Мария Ж, юрист со стажем более 20 лет, соучредитель сервиса КЭДО Добыто, спикер на конференциях по КЭДО и юриспруденции, судебный эксперт в сфере корпоративного и трудового права. Занимается наймом персонала более 13 лет. Автор более 1000 статей о цифровой подписи, трудовом праве, КЭДО и HR.
Что такое XML-файл и зачем его подписывают
XML (eXtensible Markup Language, расширяемый язык разметки) — это текстовый формат для хранения и передачи структурированных данных. Внутри обычный текст, разбитый на теги и атрибуты, примерно как в HTML, только теги произвольные, под конкретную задачу. В XML выгружают отчётность для ФНС, счета-фактуры, УПД, межевые планы для Росреестра, машиночитаемые доверенности (МЧД), сообщения для СМЭВ. Везде, где одна информационная система передаёт данные другой, чаще всего фигурирует именно XML — его удобно читать программам.
Подпись нужна по той же причине, что и для любого электронного документа. Для XML это критично: файл легко открыть в блокноте и поправить пару цифр. Усиленная подпись фиксирует целостность — вычисляется хэш (длинное число, однозначно соответствующее тексту документа), и этот хэш подписывается закрытым ключом. Проверяющая сторона считает хэш заново и сравнивает. Изменился хоть один символ после подписания — проверка свалится.
Вид подписи под XML зависит от того, куда документ идёт. Простая электронная подпись (ПЭП) тут почти не встречается — она не позволяет проверить неизменность файла, фиксирует только сам факт подписания. Для отчётности в налоговую, Росреестр, суды, СМЭВ нужна усиленная квалифицированная подпись (УКЭП): сертификат от аккредитованного удостоверяющего центра, средства подписи, сертифицированные ФСБ. Реже хватает усиленной неквалифицированной (НЭП) — например, во внутренних системах по соглашению сторон.
Чем открыть XML-файл для просмотра
Тут всё просто. XML — это текст, поэтому платный софт для просмотра не нужен. Самый быстрый способ — перетащить файл в окно браузера. Chrome, Яндекс Браузер, Edge, Firefox — любой покажет структуру документа, подсветит синтаксис и даст свернуть отдельные блоки. Редактировать в браузере нельзя, только смотреть.
Если файл нужно поправить, открывайте его в текстовом редакторе. Блокнот есть на любой Windows-машине: правый клик по файлу, «Открыть с помощью», Блокнот. Минус — нет подсветки синтаксиса, в большом XML быстро запутаешься. Поэтому те, кто работает с XML регулярно, ставят Notepad++ или VS Code — там подсветка, нумерация строк, сворачивание тегов, автоопределение кодировки. Последнее важно: если XML открылся «кракозябрами», почти наверняка дело в кодировке, и Notepad++ её обычно подхватывает корректно. Excel откроет XML как таблицу, если внутри табличные данные, Word покажет текстовое содержимое.
Отдельная специфика: XML формализованного документа от ФНС выглядит как набор кодов, человеку он мало о чём говорит. Для таких случаев налоговая запустила сервис визуализации XML-документов — туда загружаешь XML вместе с файлами подписи (sgn, sig, sign), и сервис показывает человекочитаемый документ со штампами открепленных подписей и отметкой даты визуализации. Этим же сервисом можно дать проверить документ третьему лицу, у которого нет своего ПО.
Мария Ж, специалист по цифровой подписи и КЭДО:
«Самая частая ошибка — человек открывает XML в браузере, видит «зелёный замочек» в соседней вкладке и решает, что файл подписан. Нет. Замочек в браузере — это про защищённое соединение с сайтом, к подписи документа отношения никакого. Подписан XML или нет, по самому файлу в браузере вы не поймёте. Нужен либо файл подписи рядом, либо блок Signature внутри XML, либо проверка через нормальный сервис.»
Два способа подписать XML: отделённая подпись и встроенная в XML
Вот ключевой момент, который путает почти всех. Для XML есть две принципиально разные схемы подписи, и они несовместимы между собой.
Первая — подпись по стандарту CMS (он же PKCS#7), привычная всем «как у любого файла». Бывает отсоединённая (открепленная) и присоединённая. При отсоединённой рядом с исходным XML появляется отдельный файл подписи с расширением .sig, .sgn, .p7s, .sign или .bin, сам XML не меняется ни на байт. При присоединённой исходник и подпись упаковываются в один контейнер вида документ.xml.sig. Эту схему дают КриптоАРМ, Контур.Крипто, Saby Crypto и другие настольные и онлайн-программы.
Вторая схема — XMLDSig (XML Digital Signature), подпись от консорциума W3C, придуманная под XML. Тут подпись встраивается внутрь самого документа, в отдельный узел <Signature>, отдельного файла не появляется. И вот специфика: подписать можно не весь документ, а только его часть, конкретный узел. Подпись бывает enveloped (внутри подписываемого узла), enveloping (узел внутри подписи) и detached. Именно XMLDSig требуют СМЭВ 3, отдельные сервисы ФНС и ПФР, госсистемы вроде ГИИС ДМДК.
Почему это важно? Если система ждёт XMLDSig, а вы принесли открепленный .sig от КриптоАРМ — она его не примет. И наоборот. Сначала узнайте у принимающей системы, какой формат она хочет, а потом выбирайте инструмент. Каждая система предъявляет свои требования: к расширению, кодировке, виду подписи, иногда даже к имени файла подписи.
Мария Ж, судебный эксперт в сфере трудового и корпоративного права:
«Помню кейс, когда бухгалтер три дня не мог сдать отчёт — подписывал XML открепленной подписью в КриптоАРМ, а портал требовал встроенную XMLDSig по правилам СМЭВ. Формально человек всё делал правильно, подпись валидная, «крипта» отработала. Но не тот формат. Логику в этом искать бессмысленно, требование нужно просто выяснить заранее и выполнить. Перед первой подписью XML всегда смотрите регламент той системы, куда грузите файл.»
Что нужно установить перед подписанием XML
Базовый набор для подписи XML на Windows стандартный, одинаковый что для отчётности в ФНС, что для Росреестра. Во-первых, драйверы ключевого носителя — определите, что у вас за носитель (Рутокен, JaCarta, eSmart), и поставьте драйвер с сайта производителя. Во-вторых, криптопровайдер — программа, которая считает российскую крипту. На рынке доминирует КриптоПро CSP, актуальные сертифицированные версии 5.0 R2 и 5.0 R3, сертификаты на линейку 5.0 действуют до 1 мая 2027 года, рекомендуют версию не ниже 5.0 R2 сборки 12000. В-третьих, при подписании в браузере или на госпортале — КриптоПро ЭЦП Browser plug-in и расширение для браузера. В-четвёртых, корневые сертификаты Минцифры и удостоверяющего центра плюс личный сертификат подписи.
Отдельно про ключ от ФНС. Если подписываете XML ключом от удостоверяющего центра ФНС, держите в уме: такой ключ неэкспортируемый, его нельзя скопировать с токена по регламенту УЦ. Использовать его законно можно только воткнув флешку с ключом в тот компьютер, где идёт подписание. Это усложняет автоматизацию и разработку в докере. Лицензия КриптоПро в рамках пилотного проекта УЦ ФНС вшивается внутрь сертификата и действует ровно столько, сколько действует сам сертификат.
В сервисе Добыто при подключении компаний к электронному документообороту первым делом проверяем рабочее место — стоит ли криптопровайдер нужной версии, видит ли система токен, установлены ли корневые сертификаты. В половине случаев проблема с подписью XML оказывается не в файле, а в недокрученном компоненте.
Как подписать XML в КриптоАРМ: пошаговая инструкция
Показать пошаговую инструкцию
- Шаг 1. Установите сертификат подписи в хранилище «Личные», а корневой сертификат — в «Доверенные корневые центры сертификации». Подключите токен с ключом к компьютеру.
- Шаг 2. Кликните по XML-файлу правой кнопкой мыши и выберите «КриптоАРМ» — «Подписать». Либо откройте КриптоАРМ ГОСТ 3, раздел «Документы», мастер «Подпись и шифрование», и добавьте файл туда.
- Шаг 3. В настройках операции выберите вид подписи: отсоединённая (создаст отдельный файл подписи рядом с XML) или присоединённая (упакует исходник и подпись в один контейнер). Для большинства информационных систем нужна отсоединённая.
- Шаг 4. В окне «Выходной формат» выберите кодировку — DER или BASE64. Если система требует расширение .sig или .sign, задайте его. При необходимости включите штамп времени и стандарт подписи: CAdES-BES, CAdES-T или CAdES-X Long Type 1 для долгого хранения.
- Шаг 5. Выберите личный сертификат, нажмите «Готово», введите PIN-код токена. Дождитесь сообщения об успешном подписании. Рядом с исходным XML появится файл подписи — оба файла передавайте получателю вместе.
Программы и сервисы для подписания XML
Инструментов хватает, и выбор зависит от того, разовая это задача или поток документов, нужна вам установка софта или хочется обойтись браузером.
КриптоАРМ ГОСТ 3 — универсальное настольное приложение от компании «Цифровые Технологии». Подписывает и шифрует файлы любых форматов, включая XML, проверяет подписи, расшифровывает. Работает на Windows, Linux, macOS и отечественных ОС. Сертифицирован ФСБ в составе КриптоПро CSP 5.0 R3 (сертификат до мая 2027 года). Умеет подпись с МЧД — можно прикрепить к сертификату файл доверенности формата XML и файл подписи SIG, подписать документ и получить единый архив. Форматы файла подписи: .sig, .p7s, .sgn, .sign, .bin. Для проверки подписи лицензия не нужна.
Следите за нашими каналами
Никакой воды — только важное и новости первыми.
Контур.Крипто — веб-сервис от СКБ Контур, работает в браузере без установки дополнительных программ (КриптоПро CSP всё равно нужен на системном уровне). Создаёт отсоединённую и присоединённую подпись, можно добавить штамп времени, проверить подпись с протоколом. Подходит сертификат любого УЦ. Ограничение — размер документа до 100 МБ, на macOS и Linux официально не поддерживается. Saby Crypto (бывший СБИС) — бесплатный веб-сервис, аналог КриптоАРМ, работает по адресу crypto.saby.ru, нужны Saby Plugin и КриптоПро CSP. Формирует отсоединённую и присоединённую подпись нужного формата для торговых площадок и информационных систем.
Из специализированных программ: для кадастровых инженеров и Росреестра подписывают XML межевых и технических планов через программы серии «Полигон» либо КриптоАРМ. Для XMLDSig под СМЭВ, сервисы ФНС и ПФР универсального «кнопочного» решения почти нет — там подпись чаще встраивается через API информационной системы или специальным ПО оператора. Например, в Контур.Экстерн отчёты СЗВ-ТД и заявления на подключение к ЭДОК подписываются именно в формате XMLDsig по правилам СМЭВ 3, и блок Signature выносится в корень документа.
Для проверки уже подписанного XML удобно использовать сервис на Госуслугах или специализированные онлайн-проверки. Проверить подпись вы можете прямо здесь.
Проверка электронной подписи онлайн — сервис Добыто
Проверка электронной подписи
Загрузите файл подписи или пару файлов для открепленной подписи.
Сервис проверит целостность подписи и покажет сведения о сертификате.
1 Выберите тип подписи:
Для присоединенной подписи нужен один файл. Для открепленной проверки требуются документ и файл подписи.
2 Загрузите документ и подпись:
Документ
Файл подписи
Если XML-файл нужно подписать встроенной XMLDSig-подписью под СМЭВ или сервис ФНС, и при этом «крипта» отрабатывает, а портал документ не принимает — чаще всего дело в каноникализации, трансформации или формате подписи. Это тот случай, когда несколько часов уходит на подбор параметров вслепую. Наши специалисты в Добыто настраивают подписание XML под требования конкретной принимающей системы, чтобы документ уходил с первого раза.
Форматы подписи XML: CMS, CAdES и их разновидности
Когда подписываете XML по схеме CMS, есть нюанс — подпись бывает разного «уровня долговечности». Базовая CAdES-BES фиксирует факт и целостность. Но сертификат рано или поздно истечёт, а проверять подпись может понадобиться и через 50 лет, если это кадровый или финансовый документ с долгим сроком хранения.
Следите за нашими каналами
Никакой воды — только важное и новости первыми.
Для этого подпись усовершенствуют — добавляют доказательства подлинности. Штамп времени (метка момента подписания), ответ OCSP (статус сертификата на момент подписания), архивная метка, заверяющая предыдущие. Уровни по нарастающей: CAdES-T, CAdES-X Long Type 1, CAdES-A. Такая подпись остаётся проверяемой даже после того, как сертификат протух. В народе это называют «ухаживанием за подписью».
| Формат / схема | Где применяется | Особенность |
|---|---|---|
| CMS / PKCS#7 (отсоединённая) | торговые площадки, ФСРАР, Минобороны, обмен файлами | отдельный файл .sig / .sgn рядом с XML, исходник не меняется |
| CMS / PKCS#7 (присоединённая) | передача единым контейнером | XML и подпись в одном файле документ.xml.sig |
| CAdES-T / X Long Type 1 / A | архивное хранение, долгие сроки | штампы времени, OCSP, архивная метка — проверяема после истечения сертификата |
| XMLDSig (enveloped / enveloping) | СМЭВ 3, сервисы ФНС и ПФР, ГИИС ДМДК | подпись внутри XML в узле Signature, можно подписать часть документа |
В XMLDSig свои тонкости. Внутри блока Signature лежат SignedInfo с описанием подписанного, сам SignatureValue и KeyInfo с сертификатом. Для российской крипты используются ГОСТ Р 34.10 (электронная подпись) и ГОСТ Р 34.11 (хэш-функция). Перед расчётом хэша XML приводят к единому виду — это каноникализация, приведение данных к одной нормализованной форме. У СМЭВ 3 при этом своя проприетарная трансформация (urn://smev-gov-ru/xmldsig/transform) со своими правилами, и сертификат теперь должен находиться внутри Signature, а не выноситься в заголовок, как было в СМЭВ 2. Тут руками в блокноте не подпишешь, нужно либо ПО оператора, либо своя реализация на библиотеках вроде Apache Santuario.
Образцы документов для работы с электронной подписью
Открыть список документов
| Документ | Скачать |
|---|---|
| Заявление на выпуск квалифицированного сертификата ЭП | Скачать |
| Заявление на аннулирование сертификата ЭП | Скачать |
| Доверенность на получение сертификата ЭП | Скачать |
| Согласие на обработку ПДн для выпуска сертификата ЭП | Скачать |
| Соглашение об использовании ПЭП и НЭП | Скачать |
| Памятка по настройке КЭП для налоговой | Скачать |
| Ответы на вопросы об установке ЭЦП | Скачать |
| Инструкция по установке ЭЦП на компьютер | Скачать |
Типичные ошибки при подписании XML
Соберу частые промахи, на которых люди теряют время и деньги.
Не тот формат подписи. Самая дорогая ошибка. Подписали открепленной CMS-подписью, а система ждала встроенную XMLDSig — или наоборот. Делают так, потому что используют привычную программу, не сверившись с регламентом приёмки. Цена — отклонённый документ, сорванный срок сдачи отчёта, иногда штраф за просрочку. Лечится одним действием: до подписания узнать у принимающей системы формат, кодировку и расширение файла подписи.
Правка XML после подписания. Открыли в блокноте, поправили «мелочь» уже после подписания — подпись слетела, документ недействителен. Любое изменение хоть одного символа ломает целостность. Цена — переподписание заново, а если файл уже ушёл, то и разбирательство с контрагентом.
Просроченный или неподходящий сертификат. Подписывают сертификатом с истёкшим сроком либо квалифицированным от УЦ, который не годится для конкретной системы. Проверяйте срок действия в свойствах сертификата перед подписанием — подпись просроченным сертификатом проверку не пройдёт.
Игнор кодировки. XML с неправильной кодировкой или лишними переводами строк — и подпись СМЭВ не сходится из-за каноникализации. Особенно болезненно для XMLDSig, где правила приведения к нормальной форме жёсткие. Цена — часы отладки. В сервисе Добыто этот этап мы закрываем настройкой подписания под конкретный регламент, чтобы клиент не упирался в невидимые пробелы и переносы строк.
Мария Ж, соучредитель сервиса КЭДО Добыто:
«За время работы мы подключили не одну сотню компаний, и почти в каждом проекте, где есть XML-обмен с госсистемами, всплывает один и тот же затык — неверный формат подписи. Мы выработали простое правило: сначала берём реальное тестовое сообщение принимающей системы, смотрим, какую подпись она реально проверяет, и только потом настраиваем подписание. Это экономит клиенту недели на подборе вслепую.»
Стоимость подписания и хранения XML-документов в КЭДО
Если речь не про разовую подпись XML, а про поток кадровых или иных документов с электронной подписью, имеет смысл смотреть в сторону сервиса КЭДО — там подписание, маршрутизация и хранение собраны в одном месте. Стоимость зависит от численности штата, выбранного тарифа и набора подключаемых функций.
| Тариф | Стоимость | Условия |
|---|---|---|
| Старт — для небольших компаний, начинающих переход на КЭДО (ПЭП и УНЭП, базовые шаблоны) | от 30 ₽ за сотрудника / мес | до 25 сотрудников |
| Бизнес — полный набор функций: ПЭП, УНЭП и УКЭП, интеграция с 1С, электронный архив | от 50 ₽ за сотрудника / мес | неограниченно сотрудников |
| Корпорация — выделенный сервер, SLA 99.9%, API и кастомные интеграции | по запросу | персональный менеджер |
На тарифе Бизнес минимальная оплата — 50 сотрудников за 30 000 ₽ в год. Итоговая сумма зависит от численности персонала, выбранного тарифа и объёма подключаемых модулей — актуальные тарифы сервиса Добыто помогут сориентироваться точнее под вашу задачу.
Выводы: как открыть и подписать XML с электронной подписью
Открыть XML для просмотра проще всего в браузере, для редактирования — в Notepad++ или VS Code с подсветкой синтаксиса; формализованные документы ФНС удобно смотреть через сервис визуализации налоговой. Главное при подписании — определить, какой формат требует принимающая система. Для XML существуют две несовместимые схемы: отсоединённая или присоединённая подпись CMS/PKCS#7 (файлы .sig, .sgn, .p7s) и встроенная XMLDSig, которую требуют СМЭВ 3, сервисы ФНС и ПФР. Принести не тот формат — значит получить отклонённый документ, даже если подпись математически верна.
Перед первой подписью соберите рабочее место: драйвер носителя, КриптоПро CSP не ниже 5.0 R2, браузерный плагин при работе на портале, корневые и личный сертификаты. Ключ от УЦ ФНС неэкспортируемый и работает только на той машине, куда вставлен токен. Проверяйте срок действия сертификата и не правьте XML после подписания — любое изменение ломает целостность. Для долгого хранения используйте усовершенствованные форматы CAdES-T, X Long Type 1 или A со штампами времени. Для разовой задачи хватит настольного КриптоАРМ или онлайн-сервисов Контур.Крипто и Saby Crypto, для потока документов с XML-обменом по правилам СМЭВ разумнее настроить подписание под конкретный регламент один раз.
Часто задаваемые вопросы
Чем открыть XML-файл, если он показывает «кракозябры»?
Чем отличается отсоединённая подпись XML от присоединённой?
Можно ли подписать XML простой электронной подписью?
Что такое XMLDSig и чем она отличается от обычной подписи .sig?
Какие программы нужны для подписания XML на компьютере?
Можно ли подписать XML онлайн без установки программ?
Какое расширение должно быть у файла подписи XML?
Почему подпись XML «слетает» после редактирования?
Можно ли использовать ключ от ФНС для подписания XML на любом компьютере?
Что такое усовершенствованная подпись и зачем она для XML?
Как проверить, подписан ли XML-файл?
Что такое каноникализация XML и почему из-за неё не проходит подпись?
Подписание XML с электронной подписью кажется простым только до первого отклонённого документа. Когда речь о потоке кадровых и юридически значимых документов, ручное подписание через настольные программы быстро упирается в форматы, кодировки и регламенты разных систем. Сервис Добыто закрывает это в едином интерфейсе — подписание, маршрутизация и хранение документов с электронной подписью. Мы подключили не одну сотню компаний и знаем практику работы с госсистемами и требованиями к форматам подписи, ведём клиента до момента самостоятельной работы.
- Поддержка всех трёх видов подписей — ПЭП, УНЭП, УКЭП — для любого документа
- Юридическая значимость по 63-ФЗ и 377-ФЗ — электронный документ равносилен бумажному
- Готовый коннектор с 1С (ЗУП, КА, ERP, бухгалтерия) — ставится за час без разработчиков
- Вся цепочка подписей фиксируется с отметками времени — защита при проверках и в суде
- Хранение документов до 50 лет — доступ к архиву сохраняется даже при расторжении договора
- Три вида поставки — облачная, on-premise, гибридная — под требования ИБ компании
- Сопровождение клиента до первых 50 подписаний — до полностью самостоятельной работы