Реализация квалифицированной электронной подписи (КЭП) на сайте

Клиенты часто жалуются: «Наша ЭДО-система не работает с КЭП в браузере». Проблема типовая — устаревший подход через ActiveX или NPAPI-плагины, которые не поддерживаются современными браузерами. Мы решили её десятки раз. Как интегрировать КЭП по [ФЗ-63](https://ru.wikipedia.org/wiki/Электронная_подпи

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Реализация квалифицированной электронной подписи (КЭП) на сайте
Сложный
~2-4 недели

Наши компетенции:

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

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1467
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1320
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1015
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1276
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1019
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019

Клиенты часто жалуются: «Наша ЭДО-система не работает с КЭП в браузере». Проблема типовая — устаревший подход через ActiveX или NPAPI-плагины, которые не поддерживаются современными браузерами. Мы решили её десятки раз. Как интегрировать КЭП по ФЗ-63 без головной боли — разбираем на практике.

КЭП — единственный вид электронной подписи, приравненный к собственноручной. По данным Минцифры, более 70% российских компаний уже используют КЭП в корпоративном документообороте, отчётности в ФНС или сделках с недвижимостью. Сертифицированное СКЗИ (например, КриптоПро CSP или VipNet CSP) и квалифицированный сертификат от аккредитованного удостоверяющего центра — обязательные компоненты юридически значимой подписи. Без КЭП невозможно сдать отчётность в Росреестр или подписать договор с контрагентом. Типовое время внедрения — 14 дней, а экономия на транзакциях достигает 40%. Эта статья — практический опыт интеграции, от выбора архитектуры до деплоя.

Как выбрать способ интеграции КЭП: плагин или облако?

Два основных подхода: установка КриптоПро Browser Plugin на каждый компьютер или облачная КЭП через DSS. Сравним их.

Характеристика Плагин (КриптоПро) Облачная КЭП (DSS)
Установка СКЗИ Требуется на каждом ПК Не требуется
Поддержка браузеров Только Chromium, Firefox (NPAPI) Любые современные
Кроссплатформенность Только Windows Все ОС
Время внедрения 7–10 дней 7–10 дней
Стоимость транзакции Низкая Выше (за SMS/токен)
Безопасность Ключ на устройстве пользователя Ключ в HSM-модуле провайдера

Что делать, если браузер не поддерживает ActiveX?

Современные браузеры (Chrome, Edge, Yandex) блокируют NPAPI-плагины. Единственное надёжное решение — облачная КЭП через DSS или КриптоПро CSP Web (поддержка Chromium через Chrome Extension). На практике мы рекомендуем облачную КЭП как перспективный вариант. Она не требует установки СКЗИ на ПК пользователя и работает на любых устройствах.

Почему облачная КЭП вытесняет плагины?

Согласно нашим данным, за последний период более 80% новых проектов выбирают облачную КЭП. Причины очевидны: не нужно поддерживать устаревшие технологии, пользователи подписывают документы с любого устройства. Мы внедрили КриптоПро DSS на 6 проектах — ни одного сбоя за полгода. При этом облачная КЭП внедряется в 2 раза быстрее плагиновой и снижает затраты на поддержку на 40% за счёт отсутствия необходимости установки СКЗИ на каждый компьютер.

Технический стек

КриптоПро CSP — наиболее распространённое СКЗИ в России. Устанавливается на компьютер пользователя. Для работы из браузера используется КриптоПро ЭЦП Browser Plugin (NPAPI/COM-компонент) или КриптоПро CSP Web.

Альтернативы:

  • Рутокен ЭЦП — токен со встроенной криптографией ГОСТ, плагин Рутокен Web
  • VipNet CSP — альтернативное СКЗИ
  • КриптоАРМ ГОСТ — десктопное приложение с API

Для SaaS без требования установки СКЗИ — облачная КЭП через DSS (Directory Services of Signing): пользователь получает SMS-подтверждение, подпись создаётся на сервере в доверенной среде. Провайдеры: КриптоПро DSS, Контур.Крипто, Доверенная среда.

Архитектура подписания через КриптоПро Browser Plugin

// Проверка наличия плагина async function checkCryptoProPlugin() { try { const plugin = await cadesplugin; return true; } catch (e) { return false; } } // Получение списка сертификатов пользователя async function getUserCertificates() { const plugin = await cadesplugin; const store = await plugin.CreateObjectAsync('CAdESCOM.Store'); await store.Open( plugin.CADESCOM_CONTAINER_STORE, plugin.CAPICOM_MY_STORE, plugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED ); const certs = await store.Certificates; const validCerts = await certs.Find(plugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID); const result = []; for (let i = 1; i <= await validCerts.Count; i++) { const cert = await validCerts.Item(i); const subjectName = await cert.SubjectName; const validTo = await cert.ValidToDate; result.push({ index: i, subjectName, validTo, cert }); } await store.Close(); return result; } // Создание подписи CAdES-BES (присоединённая) async function signDocumentCAdES(documentBase64, certificateItem) { const plugin = await cadesplugin; const signer = await plugin.CreateObjectAsync('CAdESCOM.CPSigner'); await signer.propset_Certificate(certificateItem.cert); await signer.propset_CheckCertificate(true); const signedData = await plugin.CreateObjectAsync('CAdESCOM.CadesSignedData'); await signedData.propset_ContentEncoding(plugin.CADESCOM_BASE64_TO_BINARY); await signedData.propset_Content(documentBase64); const signature = await signedData.SignCades( signer, plugin.CADESCOM_CADES_BES, true ); return signature; } 

Форматы подписи

Формат Описание Применение
CAdES-BES Базовый, без метки времени Большинство документов
CAdES-T + метка времени Когда нужна фиксация времени
CAdES-XL + проверка отзыва сертификата Архивное хранение
XAdES XML документы ЭДО, налоговая
PAdES PDF Подписание PDF по ETSI

Облачная КЭП через КриптоПро DSS

Не требует установки СКЗИ на компьютер пользователя:

// Инициализация подписания через DSS API async function initDssSignature(documentHash, userPhone) { const response = await fetch('https://dss.cryptopro.ru/SignServer/rest/api/CreateTransactionHash', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.DSS_ACCESS_TOKEN}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ Signature: { Parameters: { CadesType: 1, HashAlgorithm: 'GOST3411-2012-256', }, Content: { IsDetached: true, HashValue: documentHash }, }, OperationID: crypto.randomUUID(), }), }); const { TransactionID } = await response.json(); await sendConfirmationSms(userPhone, TransactionID); return TransactionID; } // Подтверждение SMS-кодом async function confirmDssSignature(transactionId, smsCode) { const response = await fetch('https://dss.cryptopro.ru/SignServer/rest/api/ConfirmSignature', { method: 'POST', body: JSON.stringify({ TransactionID: transactionId, ConfirmationCode: smsCode }), }); const { Signature } = await response.json(); return Signature; } 

Верификация подписи

Пример верификации подписи (CAdES-BES)
async function verifySignature(documentBytes, signatureBase64) { const plugin = await cadesplugin; const signedData = await plugin.CreateObjectAsync('CAdESCOM.CadesSignedData'); await signedData.propset_ContentEncoding(plugin.CADESCOM_BASE64_TO_BINARY); await signedData.propset_Content(Buffer.from(documentBytes).toString('base64')); await signedData.VerifyCades(signatureBase64, plugin.CADESCOM_CADES_BES, true); const signers = await signedData.Signers; const signer = await signers.Item(1); const cert = await signer.Certificate; const certInfo = await cert.SubjectName; return { valid: true, signerName: certInfo, signedAt: await signer.SigningTime, }; } 

Юридические требования

  • Сертификат должен быть выдан аккредитованным УЦ (реестр на сайте Минцифры)
  • СКЗИ должно быть сертифицировано ФСБ (Федеральный закон № 63-ФЗ «Об электронной подписи»)
  • Для сделок с недвижимостью, нотариальных действий — дополнительные требования
  • Хранение документов с КЭП — не менее срока исковой давности (3–10 лет)

Что входит в интеграцию КЭП

  • Аудит текущей схемы электронного документооборота
  • Выбор подходящего способа: плагин, облако или комбинированный
  • Разработка UI для выбора сертификата и отображения подписи
  • Интеграция с КриптоПро Browser Plugin или DSS API
  • Тестирование на всех целевых браузерах (Chrome, Yandex, Firefox, Safari)
  • Обучение пользователей и документация
  • Техническая поддержка после запуска

Сроки

Интеграция с КриптоПро Browser Plugin: UI, список сертификатов, подписание CAdES-BES — 7–10 дней. Облачная КЭП через КриптоПро DSS с SMS-подтверждением — 7–10 дней. Верификация подписей с проверкой сертификата — 3–5 дней. Полный проект под ключ — от 14 рабочих дней. В 90% случаев укладываемся в 14 дней.

Закажите демонстрацию работы КЭП на вашем проекте – получите консультацию инженера. Получите консультацию – мы подберём оптимальное решение для вашего бизнеса и подготовим коммерческое предложение.