Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline harbesh  
#1 Оставлено : 28 июня 2022 г. 18:55:55(UTC)
harbesh

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.06.2022(UTC)
Сообщений: 2

Добрый день!

В cryptcp есть возможность использовать расширения (-ext) для внесения расширения в создаваемый сертификат, но в официальной документации (https://www.cryptopro.ru/sites/default/files/products/cryptcp/cryptcp_5.0.x.pdf) указано только, что файл расширения должен быть в закодирован base64 / der.

Подскажите как сгенерировать сам файл расширения или хотя бы в каком формате данные в него положить (oid / value / critical).

Пример команды:
Цитата:
/opt/cprocsp/bin/cryptcp -createcert -dn <данные о сертификате>' -ext <путь к файлу расширения>.ext -exprt -cont '\\.\hdimage\<имя контейнера>'
Offline Андрей Русев  
#2 Оставлено : 28 июня 2022 г. 22:49:37(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,585

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 670 раз в 462 постах
Нужно закодировать его в ASN.1. Например, тут есть python-скрипт для кодирования X509_ALTERNATE_NAME: https://github.com/simonvorobjev/CryptoApi
Пример использования.
Или можно взять готовый сертификат с похожим расширением, вырезать его оттуда и исправить с помощью ASN1Editor.
Официальная техподдержка. Официальная база знаний.
Offline harbesh  
#3 Оставлено : 28 июня 2022 г. 23:08:16(UTC)
harbesh

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.06.2022(UTC)
Сообщений: 2

Да, видел данный проект, но вопрос как именно добавить не ALTERNATE_NAME, а именно связку оид-значение-критикал под расширение.

Попробую в параллельно освоить ASN1Editor, возможно это поможет.
Offline Андрей *  
#4 Оставлено : 28 июня 2022 г. 23:25:04(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,087
Мужчина
Российская Федерация

Сказал «Спасибо»: 612 раз
Поблагодарили: 2375 раз в 1868 постах
Автор: harbesh Перейти к цитате
Да, видел данный проект, но вопрос как именно добавить не ALTERNATE_NAME, а именно связку оид-значение-критикал под расширение.

Попробую в параллельно освоить ASN1Editor, возможно это поможет.


на примере критического расширения "использование ключа":
MA4GA1UdDwEB/wQEAwIE8A==

Snimok ehkrana ot 2022-06-29 00-22-36.png (67kb) загружен 40 раз(а).

через редактор можно создать\экспортировать нужное.
Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#5 Оставлено : 29 июня 2022 г. 8:39:55(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 397 раз в 367 постах
Автор: harbesh Перейти к цитате
Да, видел данный проект, но вопрос как именно добавить не ALTERNATE_NAME, а именно связку оид-значение-критикал под расширение.
Добрый день. Собственно, на снимке отлично видно, что базовая структура произвольного расширения состоит из:
1) SEQUENCE под которой находятся:
2) OID расширения;
3) необязательный BOOLEAN параметр, означающий критическое расширение если True. Если отсутствует подразумевается False - некритическое расширение;
4) закодированное значение расширения: тут чаще всего возможны 3 варианта:
а) простое расширение, где только одно значение простого типа ASN.1 - применяется без обертки;
б) обертка типом BITSTRING (BITWRAP) когда значение расширения длинный массив данных без структуры или структура есть, но не важна
в) обертка типом OCTETSTRING (OCTWRAP) когда значение расширения еще более сложный тип и имеет внутреннюю структуру.
Большинство расширений использует вариант в (OCTWRAP).

Напомню тему 9 месяцев назад. Кодировать не вникая в тонкости какому типу ASN.1 соответствует какой код/тег, какая форма кодирования и т.д. (но вникая какой оид/тип) под Windows проще всего, скачав скомпилированную версию Openssl. Под *nix Openssl уже сразу есть.
Код:
openssl asn1parse -genconf c:\__\11.txt -out c:\__\dns2.ext


В этой теме можно прочитать подробнее как закодировать расширение при помощи openssl на примере ALTERNATE_NAME
https://www.cryptopro.ru...&m=127542#post127542

Там в итоговом конфиге секция [MyExt1] это типовая структура некритического расширения с вариантом OCTWRAP. Замените в строке "name=OID:X509v3 Subject Alternative Name" текст "X509v3 Subject Alternative Name" на нужный оид (цифрами с точками) или текст для нужного оида. Соответствие текста и оида вкомпилировано в openssl. Если не хотите заморачиваться просмотров исходников openssl - проще указать оид цифрами с точками.

Для критического надо добавить между name и value строку critical=BOOLEAN:True (на самом деле слова слева от равно name/critical/value значения не имеют, важен порядок в каком идут строки после равно)

Секция [MyExt2] зависит от структуры значения конкретного расширения.
В приведенном тип примере "IMPLICIT" скрывает внутренний тип значения, далее через ":" указывается видимый тип, "2C" равносильно тому, что ASNEditor показывает как "CONTEXT (2)". ",IA5:" указывает внутренний тип, в котором фактически идет строка дальше. То есть "IMPLICIT:2C,IA5:" показывает, что строка конфига фактически идет в IA5STRING, но в закодированном виде будет указан тип "CONTEXT (2)".

Отредактировано пользователем 29 июня 2022 г. 8:42:08(UTC)  | Причина: Не указана

Offline boston_com  
#6 Оставлено : 28 января 2026 г. 9:35:54(UTC)
boston_com

Статус: Новичок

Группы: Участники
Зарегистрирован: 27.01.2026(UTC)
Сообщений: 2
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Добрый день!

По требованию УЦ к сертификату в KeyUsage должно присутствовать Согласование ключей.
При формировании запроса через cryptcp группа 2.5.29.15 задается параметрами [-ex | -sg | -both], которые не содержат этого расширения.
Я пробовал пересобрать KeyUsage через ext-файл и добавление в команду параметра -ext, но cryptcp выдает "Ошибка: Встречено неверное значение тега ASN1."

У меня есть предположение что -ext не может пересобрать группу 2.5.29.15, а может добавить в запрос только дополнительные OID, но в руководстве командной строки такая информация прямо не прописана.

При формировании запроса я использовал PowerShell и следующую команду:
.\cryptcp.x64.exe -createrqst -rdn <данные_пользователя> -provtype 80 -provname "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -exprt -cont <имя_КН> -sg -ext ku.ext -certusage <дополнительные_OID>.

Без -ext ku.ext запрос формируется корректно, но без нужного параметра keyAgreement

UPD: чтобы не было вопроса почему в команде отсутствует параметр -ex - расширения Шифрование ключей, Шифрование данных для данного сертификата запрещены.

Отредактировано пользователем 28 января 2026 г. 9:40:10(UTC)  | Причина: Не указана

Offline Русев Андрей  
#7 Оставлено : 28 января 2026 г. 10:35:12(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,585

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 670 раз в 462 постах
Автор: boston_com Перейти к цитате
в KeyUsage должно присутствовать Согласование ключей.
Здравствуйте. Используйте csptest -minica с параметром -keyusage <число>. В этом числе битовой маской задаётся любое назначение. См. CSP_WinCrypt.h из SDK:
Код:
#define CERT_DIGITAL_SIGNATURE_KEY_USAGE     0x80
#define CERT_NON_REPUDIATION_KEY_USAGE       0x40
#define CERT_KEY_ENCIPHERMENT_KEY_USAGE      0x20
#define CERT_DATA_ENCIPHERMENT_KEY_USAGE     0x10
#define CERT_KEY_AGREEMENT_KEY_USAGE         0x08
#define CERT_KEY_CERT_SIGN_KEY_USAGE         0x04
#define CERT_OFFLINE_CRL_SIGN_KEY_USAGE      0x02
#define CERT_CRL_SIGN_KEY_USAGE              0x02
#define CERT_ENCIPHER_ONLY_KEY_USAGE         0x01


Официальная техподдержка. Официальная база знаний.
thanks 1 пользователь поблагодарил Русев Андрей за этот пост.
boston_com оставлено 28.01.2026(UTC)
Offline boston_com  
#8 Оставлено : 28 января 2026 г. 17:48:33(UTC)
boston_com

Статус: Новичок

Группы: Участники
Зарегистрирован: 27.01.2026(UTC)
Сообщений: 2
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Автор: Русев Андрей Перейти к цитате
Автор: boston_com Перейти к цитате
в KeyUsage должно присутствовать Согласование ключей.
Здравствуйте. Используйте csptest -minica с параметром -keyusage <число>. В этом числе битовой маской задаётся любое назначение. См. CSP_WinCrypt.h

Добрый день!

Спасибо за ответ. В указанном вами руководстве сказано что "Большинство опций, влияющих на генерируемый сертификат (-certusage, -cdp и так далее), не влияет на создаваемый запрос", что и подтвердилось:
в команде были указаны параметры -keyusage 0xC8 -certusage "1.3.6.1.4.1.10244.4.2.1,1.3.6.1.4.1.10244.7.50.2.2", но эти атрибуты в запрос не попали, он сформировался точно таким же как и тестовый пример из статьи, без расширений.

Offline Зубов Иван  
#9 Оставлено : 28 января 2026 г. 20:51:38(UTC)
Зубов Иван

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 02.11.2017(UTC)
Сообщений: 71
Мужчина

Сказал «Спасибо»: 14 раз
Поблагодарили: 32 раз в 29 постах
Здравствуйте.

Указанный quick start guide не является исчерпывающим руководством, он является лишь введением. Мы вынужденно его не всегда обновляем и не перегружаем всеми подробностями, потому что кому-то нужен последний релиз, но многим -- последний сертифицированный, кто-то использует ещё более старые...

В самом последнем релизном CSP многие опции влияют на создаваемый запрос.

В справке (практически истине в последней инстанции) это отражено так:
<request options>:
...
-certusage <OIDs> Specify comma-separated certificate usages
...
-keyusage <num> Number corresponding to KeyUsage bitmask

В changelog это описано так:
2025-08-03 КриптоПро CSP 5.0.13600 Wyvern
* csptest: В -minica добавлена возможность задавать -altname, -upn и -certusage в запросах. В -minica altname может быть задан в виде IP или email (CPCSP-15052).

2025-02-28 КриптоПро CSP 5.0.13455 Valkyrie
* csptest: Добавлена возможность указывать произвольный keyusage при создании запроса на сертификат (CPCSP-14745).
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.