Автоматическое подписание обезличенным сертификатом

Александр Гаврилов · 21 авг 2026 · 6093 · Поделиться

Подписывайте документы автоматически — без участия человека и без сложного кода. Один REST-запрос к КриптоАРМ Server, и обезличенная электронная подпись готова.

Что такое обезличенная подпись и зачем она бизнесу

Обезличенная электронная подпись использует сертификат без персональных данных владельца. Она выполняет роль печати организации и не закрепляется за конкретным сотрудником — поэтому идеально подходит для автоматического подписания в информационных системах: счета, акты, справки, выписки и любые другие массовые документы.

Сертификат выпускают:

  • ФНС — для автоматического создания и проверки подписи в электронных документах;
  • Банк России — квалифицированные обезличенные сертификаты для поднадзорных организаций;
  • Федеральное казначейство — для нужд органов власти.

Область применения регулирует закон № 63-ФЗ «Об электронной подписи»: обезличенную подпись нельзя использовать в документах, которые уходят за пределы информационной системы, или для участия в госзакупках. Внутри автоматизированных систем — можно, если назначено ответственное лицо за процесс подписания.

Простой способ: подпись одним запросом

Вам не нужно разбираться в криптографии. Загрузите сертификат и данные — сервер вернёт готовую подпись в формате CMS.

curl -X POST https://<host>/cms/sign \
 -H "Content-Type: application/json" \
 -d '{
   "cert": "MIIE…==",
   "data": "SGVsbG8sIFdvcmxkIQ=="
   "password": "******",
   "detached": true
 }'

Ответ — подпись в Base64:

{ "status": 200, "cms": "MIAGCSqGSIb3DQEHAqCAMI…" }

Всё. Ключевые параметры: cert — сертификат в Base64 (.cer, .crt, .pem, .pfx, .p12), data — подписываемые данные, password — пароль от ключевого контейнера. По умолчанию создаётся откреплённая подпись (detached: true) — документ и подпись хранятся отдельно, что удобно для систем ЭДО.

Подписание в три шага

  1. Подготовьте сертификат. Установите обезличенный сертификат в хранилище, к нему привязан закрытый ключ.
  2. Отправьте данные. Передайте файл или данные вместе с сертификатом и паролем.
  3. Получите подпись. Сервер возвращает CMS-подпись.

Подпись файла и пакетная подпись

Файл можно подписать напрямую, без ручной упаковки в Base64 — эндпоинт примет multipart-форму:

curl -X POST https://<host>/cms/sign-file \
   -F "data=@dogovor.pdf" \
   -F "cert=@obezlichennyy.cer" \
   -F "password=******" \
   -F "detached=true" \
   -o dogovor.pdf.sig

Для массовых операций есть пакетная подпись — один запрос, несколько файлов, один сертификат:

curl -X POST https://<host>/cms/sign-file-batch \
   -F "data=@schet_1.pdf" \
   -F "data=@schet_2.pdf" \
   -F "data=@schet_3.pdf" \
   -F "cert=@obezlichennyy.cer" \
   -F "password=******"

Ответ — подписи по каждому файлу:

{
   "results": [
     { "fileName": "schet_1.pdf", "cms": "MIAGCS…" },
     { "fileName": "schet_2.pdf", "cms": "MIAGCS…" },
     { "fileName": "schet_3.pdf", "cms": "MIAGCS…" }
   ]
}

Для больших объёмов укажите callbackUrl — сервер примет запрос (HTTP 202), обработает пакет в фоне и отправит результат POST-запросом на ваш адрес. Так вы не держите соединение открытым, пока подписываются сотни документов.

Нужна усовершенствованная подпись?

По умолчанию создаётся базовая подпись CAdES-BES. Передав параметр cadesStandard, вы получаете долгосрочную подпись с меткой времени: CAdES-T, CAdES-X Long Type 1 или CAdES-A — они сохраняют юридическую значимость даже после истечения срока действия сертификата. Для этого передайте адрес службы штампов времени в tspServiceAddress.

curl -X POST https://<host>/cms/sign \
   -H "Content-Type: application/json" \
   -d '{
     "cert": "MIIE…==",
     "data": "SGVsbG8sIFdvcmxkIQ==",
     "password": "******",
     "cadesStandard": "CAdES-A",
     "tspServiceAddress": "https://tsp.example.com"
   }'

Не только CAdES: PAdES и XMLDSig

Обезличенным сертификатом можно подписать документ в любом из трёх стандартов — под каждый есть свой набор эндпоинтов:

  • /cms/* — CAdES (CMS) — для любых файлов: договоры, счета, акты и произвольные данные.
  • /pades/* — PAdES — для PDF: подпись встраивается прямо в документ, можно добавить визуальный штамп.
  • /xml/* — XMLDSig — для XML-документов, в том числе по схемам СМЭВ и FCS (Free Customs Scheme).

Параметры везде одни и те же: сертификат, данные и пароль. Меняется только эндпоинт. Например, подпись PDF со штампом:

curl -X POST https://<host>/pades/sign \
   -H "Content-Type: application/json" \
   -d '{
     "pdf": "JVBERi0xLjQK…==",
     "cert": "MIIE…==",
     "password": "******",
     "addVisualStamp": true
   }'

Ответ — подписанный PDF в Base64:

{ "status": 200, "signedPdf": "JVBERi0xLjQK…" }

Для XML укажите тип подписи в поле signatureType: SMEV (СМЭВ) или FCS.

Для тех, кто строит собственный сервис: SDK

REST API покрывает типовые сценарии. Если же вы создаёте специализированный сервис и хотите управлять криптографией на уровне кода, в состав КриптоАРМ Server входит SDK — модуль trusted-crypto. Это те же операции, что и в API, но как библиотека для Node.js:

const cert = trusted.pki.Certificate.load("mycertificate.cer", trusted.DataFormat.DER);

const sd = new trusted.cms.SignedData();
sd.policies = ["detached"];
sd.content = { type: trusted.cms.SignedDataContentType.buffer, data: "Hello world" };
sd.sign(cert);
sd.export();

Модуль поддерживает асинхронную подпись, соподпись нескольких сторон, усовершенствованную подпись CAdES-T/X/A и работу с хранилищем сертификатов.

Заключение

КриптоАРМ Server превращает обезличенную подпись в рабочий инструмент: один REST-запрос — и документ подписан, а пакетная подпись закрывает задачи массового ЭДО.

Готовы автоматизировать подписание? Напишите нам на support@trusted.ru — поможем с интеграцией и предоставим триальные лицензии.

На Хабр: Пакетная подпись
Вернуться к списку новостей

Подпишитесь и получайте новые статьи по почте

Заполните поле Подписаться

Подписываясь, вы соглашаетесь на получение информационных сообщений от компании
ООО «Цифровые технологии» на условиях Политики конфиденциальности

Спасибо, что подписались
на нашу рассылку!

Узнавайте новости первыми —
подпишитесь на нашу новостную рассылку

Заполните поле
Подписаться

Подписываясь, вы соглашаетесь на получение информационных сообщений от компании
ООО «Цифровые технологии» на условиях Политики конфиденциальности

Спасибо, что подписались
на нашу рассылку!

Для повышения удобства работы и хранения данных веб-сайт CRYPTOARM.RU использует файлы COOKIE. Продолжая работу с веб-сайтом, Вы даете свое согласие на работу с этими файлами.