НейроАгент

Как создать CSR с ГОСТ шифрованием для Минцифры

Пошаговое руководство по созданию запроса на сертификат с ГОСТ-шифрованием для Минцифры через Госуслуги. Инструменты, инструкции и решения проблем.

Как создать запрос на выпуск сертификата с шифрованием ГОСТ для Минцифры?

Добрый день! У меня возникла задача создания запроса на выпуск сертификата для Минцифры через Госуслуги для сайта. В прошлом году процесс был проще и использовал RSA шифрование, но в этом году требования изменились и теперь необходимо использовать ГОСТ-овое шифрование.

Я пытаюсь достичь этого с помощью:

  • Стандартной OpenSSL (рано работало, но теперь не поддерживает ГОСТ)
  • Red OS с предустановленным gost-engine (попытки не увенчались успехом)

В интернете встречается информация о необходимости самостоятельной сборки для ГОСТ-ового шифрования.

Кто-нибудь сталкивался с подобной задачей? Поделитесь, пожалуйста, опытом решения проблемы создания CSR с ГОСТ-овым шифрованием для Минцифры.

НейроАгент

Для создания запроса на выпуск сертификата с шифрованием ГОСТ для Минцифры через Госуслуги необходимо использовать специализированные инструменты, поддерживающие российские криптографические стандарты. Основная сложность заключается в том, что стандартная OpenSSL не поддерживает ГОСТ-алгоритмы в полной мере, поэтому требуется использование специализированных решений.

Содержание

Требования к сертификатам Министерства цифрового развития

Для получения сертификата через Госуслуги требуется соответствие следующим требованиям:

  • Тип сертификата: SSL/TLS сертификат с поддержкой ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012
  • Ключевая пара: 256-битный ключ на эллиптической кривой ГОСТ Р 34.10-2012 (curve с именем “id-GostR3410-2001-CryptoPro-A-Param” или “id-GostR3410-2012-256-A-Param”)
  • Алгоритм подписи: ECDSA с ГОСТ Р 34.10-2012
  • Расширения: Необходимо включить расширения для серверной аутентификации и использования в веб-сервисах

Важно отметить, что с 2024 года Минцифры ужесточили требования к криптографическим алгоритмам, отказавшись от RSA в пользу отечественных стандартов.

Инструменты для создания CSR с ГОСТ

1. GostEngine для OpenSSL

GostEngine — это расширение для OpenSSL, добавляющее поддержку российских криптографических алгоритмов:

bash
# Установка GostEngine
sudo apt-get install libgost-engine

2. КриптоПро CSP

Профессиональное решение от компании КриптоПро:

bash
# Пример использования КриптоПро CSP
certmgr -inst -cont "My" -newkey -len 256 -alg GOST_2012_256

3. LibreSSL с поддержкой ГОСТ

Некоторые сборки LibreSSL включают поддержку ГОСТ:

bash
# Проверка поддержки ГОСТ в LibreSSL
openssl list -digest-commands | grep gost
openssl list -public-key-algorithms | grep gost

4. Специализированные утилиты

  • gost12: Утилита для работы с ГОСТ-сертификатами
  • crypto-pro: Командная утилита КриптоПро
  • certutil: Часть NSS toolkit с поддержкой ГОСТ

Пошаговая инструкция по созданию запроса

Шаг 1: Подготовка среды

Для Red OS с gost-engine:

bash
# Проверка установленного gost-engine
openssl engine gost

# Если не установлен, компиляция из исходников
git clone https://github.com/gost-engine/engine.git
cd engine
./config
make
sudo make install

Шаг 2: Создание ключевой пары

Использование GostEngine:

bash
# Создание приватного ключа ГОСТ
openssl genpkey -algorithm gost2012_256 -out private_key.pem

# Создание CSR (Certificate Signing Request)
openssl req -new -key private_key.pem -out request.csr -config openssl.cnf

Шаг 3: Настройка конфигурационного файла

Создайте файл openssl.cnf со следующим содержанием:

ini
[req]
default_bits = 256
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[req_distinguished_name]
C = RU
ST = Moscow
L = Moscow
O = Your Organization
OU = IT Department
CN = your-domain.ru

[v3_req]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer

Шаг 4: Альтернативный метод с КриптоПро

Если используется КриптоПро CSP:

bash
# Создание ключа
certmgr -create -cont "My" -newkey -len 256 -alg GOST_2012_256 -pwd "your_password"

# Создание CSR
certmgr -create -cont "My" -new -dn "CN=your-domain.ru,C=RU,ST=Moscow,L=Moscow,O=Your Organization" -r -cont "My" -store uTrusted -pwd "your_password" -out request.csr

Шаг 5: Загрузка запроса в Госуслуги

  1. Зайдите в личный кабинет Госуслуги
  2. Перейдите в раздел “Услуги” → “Минцифры” → “Сертификация”
  3. Выберите “Получить сертификат”
  4. Загрузите созданный файл request.csr
  5. Заполните остальные необходимые поля
  6. Подпишите запрос электронной подписью

Типичные проблемы и решения

Проблема 1: “OpenSSL не поддерживает ГОСТ”

Решение: Установите GostEngine или используйте КриптоПро CSP:

bash
# Для Ubuntu/Debian
sudo apt-get install libgost-engine

# Для CentOS/RHEL
sudo yum install openssl-gost

Проблема 2: “Неверный формат ключа”

Решение: Убедитесь, что используете правильный алгоритм:

bash
# Проверка формата ключа
openssl pkey -in private_key.pem -text -noout

# Должен быть виден алгоритм gost2012_256

Проблема 3: “Отклонение запроса в Госуслугах”

Решение: Проверьте наличие необходимых расширений:

bash
# Проверка CSR
openssl req -in request.csr -text -noout -verify

Проблема 4: “Конфликт версий ГОСТ”

Решение: Укажите явно версию ГОСТ в конфигурации:

bash
# В openssl.cnf добавьте
openssl_conf = default_conf

[default_conf]
openssl_conf = openssl_conf_section

[openssl_conf_section]
engines = engine_section

[engine_section]
gost = gost_section

[gost_section`
engine_id = gost
default_algorithms = ALL

Проверка корректности запроса

После создания запроса необходимо проверить его соответствие требованиям:

bash
# Проверка структуры CSR
openssl req -in request.csr -text -noout

# Проверка алгоритма подписи
openssl req -in request.csr -noout -text | grep "Signature Algorithm"

# Должно быть: gost2012_256WithGostR3411_2012_256

# Проверка расширений
openssl req -in request.csr -noout -text | grep "X509v3 Extended Key Usage"

# Должно быть: Server Authentication

При успешной проверке в выводе вы должны увидеть:

  • Алгоритм подписи: gost2012_256WithGostR3411_2012_256
  • Расширение: TLS Web Server Authentication
  • Данные организации и домена корректны

Источники

  1. Официальная документация Минцифры по требованиям к сертификатам
  2. Руководство по использованию GostEngine
  3. Документация КриптоПро CSP
  4. Требования ФСТЭК России к средствам защиты информации
  5. Рекомендации по использованию криптографии в государственных информационных системах

Заключение

Создание запроса на сертификат ГОСТ для Минцифры требует использования специализированных криптографических инструментов. Основные выводы:

  1. Используйте специализированные инструменты: Стандартная OpenSSL не поддерживает ГОСТ в полной мере, необходимы GostEngine или КриптоПро CSP
  2. Следите за версиями ГОСТ: Требования постоянно обновляются, убедитесь что используете ГОСТ Р 34.10-2012
  3. Проверяйте запросы перед отправкой: Используйте openssl для валидации структуры и алгоритмов
  4. Сохраняйте приватные ключи: Никогда не передавайте приватные ключи третьим лицам
  5. Обновляйте ПО: Регулярно обновляйте криптографические библиотеки для соответствия текущим требованиям

При возникновении сложностей рекомендуется обращаться в техническую поддержку Минцифры или использовать услуги аккредитованных центров сертификации.