PKCS #10

PKCS #10 (Public-Key Cryptography Standards #10) — это стандарт, определяющий формат запроса на выдачу цифрового сертификата (CSR — Certificate Signing Request). Он разработан компанией RSA Laboratories и широко используется в криптографических системах для:

  • Генерации запросов на регистрацию ЭЦП;
  • Получения сертификатов от удостоверяющих центров (УЦ);
  • Создания защищённых ключевых пар.

Формат CSR, основанный на PKCS #10, содержит информацию о владельце ключа и открытый ключ, а также подпись самого запроса, созданную приватным ключом. Это позволяет УЦ убедиться в подлинности отправителя запроса.

Основные характеристики

ХарактеристикаОписание
Полное названиеCertification Request Syntax Standard
Тип данныхЗапрос на выпуск сертификата
СтандартыRFC 2986, RFC 5967
РазработчикRSA Laboratories
ИспользованиеДля получения SSL/TLS-сертификатов, ЭЦП, доверенных сертификатов
Форматы файлов.csr, .pem

Назначение PKCS #10

Стандарт PKCS #10 выполняет следующие функции:

1. Создание запроса на сертификат

  • Позволяет сформировать структурированный запрос, который направляется в удостоверяющий центр. Включает в себя:
    • Данные владельца (имя, организация, адрес и др.);
    • Открытый ключ;
    • Цифровую подпись запроса.

2. Поддержка различных алгоритмов: совместим с RSA, ECDSA, ГОСТ Р 34.10-2012 и другими асимметричными схемами;

3. Интеграция в государственные системы: используется при регистрации квалифицированной электронной подписи в ЕГАИС, ГИС ЭПД, ФНС и других платформах;

4. Обеспечение безопасности: подпись самого запроса гарантирует, что он не был модифицирован третьими лицами.

Структура запроса по PKCS #10

Запрос состоит из следующих компонентов:

ПолеОписание
SubjectИнформация о владельце: ФИО, ИНН, ОГРН, организация
Public KeyОткрытый ключ, связанный с закрытым, используемым для подписания
AttributesДополнительные данные (например, challengePassword или extensionRequest)
SignatureПодпись всего запроса с использованием соответствующего приватного ключа
VersionВерсия запроса (обычно v1.0)

Пример PEM-файла:

-----BEGIN CERTIFICATE REQUEST-----
MIIBWjCB4AIBADBFMQswCQYDVQQGEwJSMjETMBEGA1UEBxMKTW9zY293IDET
...
-----END CERTIFICATE REQUEST-----

Где применяется PKCS #10?

1. Выпуск SSL/TLS-сертификатов

  • При настройке HTTPS на сервере Apache, Nginx, IIS;
  • Через онлайн-порталы Let’s Encrypt, Comodo, GlobalSign и другие УЦ.

2. Электронная цифровая подпись (ЭЦП)

  • При регистрации ЭЦП в аккредитованных удостоверяющих центрах: Контур. Диадок, КриптоПро, Wordfey, Актив Софт и др.

3. Государственные системы документооборота

  • ЕГАИС — для работы с алкогольными накладными и МЧД;
  • ГИС ЭПД — обмен логистическими документами;
  • ЕИС — участие в госзакупках с электронной подписью.

4. ERP-системы

  • 1С: Предприятие, SAP, Oracle E-Business Suite — используют CSR для интеграции с ЭДО-сервисами и государственными системами.

5. API и межсервисный обмен

  • Используется в REST API, OAuth2, JWT, SAML и других протоколах.

Как создать CSR через OpenSSL?

# Генерация RSA-ключа и CSR
openssl req -new -keyout private.key -out certificate.csr

# Создание CSR на основе существующего ключа
openssl req -new -key existing.key -out certificate.csr

# Проверка содержимого CSR
openssl req -in certificate.csr -text -noout -verify

Пример содержимого CSR

Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: C=RU, ST=Moscow, O=ООО "Пример", CN=example.com
        Public Key Algorithm: rsaEncryption
        RSA Public Key: (2048 bit)
        Attributes:
            a0:00
        Extensions:
            X509v3 extensions:
                X509v3 Key Usage: Digital Signature, Key Encipherment
                X509v3 Extended Key Usage: TLS Web Client Authentication
    Signature Algorithm: sha256WithRSAEncryption

Преимущества использования PKCS #10

  • Единый формат — позволяет использовать запросы в любом совместимом удостоверяющем центре;
  • Безопасность — подпись запроса предотвращает его подделку;
  • Автоматизация выпуска сертификатов — большинство УЦ поддерживают автоматическую обработку CSR;
  • Соответствие требованиям законодательства РФ — особенно при работе с ГИС ЭПД, ЕГАИС и другими государственными системами;
  • Интеграция в ERP и ЭДО-платформы — позволяет использовать сертификаты в бизнес-документах.

Сравнение с другими стандартами

СтандартНазначениеОсобенности
PKCS #1RSA-ключи и подписиТолько описание алгоритма
PKCS #7Подписанные / зашифрованные сообщенияНе содержит запросов на сертификаты
PKCS #8Хранение приватных ключейМожет быть частью CSR, но не сам запрос
PKCS #10Запрос на выпуск сертификатаСамый распространённый способ получения сертификата
PKCS #12Хранение ключей и сертификатовИспользуется после выпуска сертификата

Безопасное использование CSR

  • Не передавайте CSR без защиты — хотя он не содержит закрытого ключа, может содержать конфиденциальные реквизиты;
  • Храните приватный ключ в секрете — если CSR был сгенерирован с ним, то потеря ключа делает сертификат бесполезным;
  • Проверяйте данные перед отправкой — ошибки в Subject могут повлечь отказ в выдаче сертификата;
  • Используйте современные алгоритмы — например, RSA-2048, ECDSA-P256, ГОСТ Р 34.10-2012;
  • Следите за сроком действия запроса — CSR не имеет срока, но должен быть актуален при отправке в УЦ.

Практические примеры применения

✔ Получение сертификата для сайта

  • Генерируется CSR с помощью OpenSSL;
  • Отправляется в удостоверяющий центр;
  • Полученный сертификат объединяется с приватным ключом для настройки HTTPS.

✔ Работа с квалифицированной ЭЦП

  • CSR создаётся через КриптоПро CSP, Wordfey или Актив Крипто;
  • Отправляется в аккредитованный УЦ;
  • После проверки выдаётся готовый сертификат для работы в ГИС ЭПД, ЕГАИС, ЕИС.

✔ Интеграция с ERP-системой

  • В 1С формируется запрос на сертификат;
  • Сертификат загружается в систему;
  • Документы подписываются в рамках электронного документооборота.

Современные реализации

РеализацияПоддержка PKCS #10
OpenSSL✅ Полная поддержка
Java KeyStore❌ (использует keytool для генерации CSR)
Microsoft CryptoAPI✅ (через MMC и certreq)
КриптоПро CSP
Wordfey CSP
Bouncy Castle

Форматы файлов, связанные с PKCS #10

РасширениеОписание
.csrФайл запроса на выдачу сертификата
.pemBase64-представление CSR
.derБинарный формат, редко используется
.p7b, .p7cПоддерживают CMS, но не CSR
.pfx, .p12Используются после получения сертификата

Безопасность и защита информации

  • CSR не содержит приватный ключ, но его потеря может привести к необходимости повторного выпуска;
  • Подпись запроса — важна для подтверждения подлинности;
  • Проверка УЦ — все запросы проходят верификацию перед выпуском сертификата;
  • Совместимость с ГОСТ — возможна при использовании российских криптопровайдеров.

Будущее PKCS #10

Хотя формат остаётся актуальным, всё чаще используются:

  • CRMF (CMS-based) — для более сложных сценариев;
  • ACME (Let’s Encrypt) — автоматизированный протокол получения сертификатов;
  • RESTful API УЦ — для программной выдачи и управления.

Однако PKCS #10 продолжает использоваться в большинстве систем, особенно при работе с государственными сервисами и ERP-решениями.

Заключение

PKCS #10 — это ключевой элемент процесса получения сертификата. Он служит основой для:

  • Шифрования и аутентификации;
  • Электронной цифровой подписи;
  • Интеграции с государственными системами (ЕГАИС, ГИС ЭПД);
  • Обмена данными в корпоративной среде.

Если ваш бизнес работает с:

  • Электронной подписью;
  • Обменом документов через ГИС ЭПД, ЕГАИС;
  • SSL-сертификатами;
  • ERP-системами (1С, SAP, Oracle);

— понимание и правильное использование PKCS #10 поможет вам эффективно управлять сертификатами и обеспечить юридическую значимость ваших операций.