Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Добрый день. Утилитами, которые работают с кодировкой ASN.1 Например, если есть openssl, то подойдет команда openssl asn1parse В обычном режиме она позволяет просмотреть что закодировано Код:D:\Programs\OpenSSL110\bin>openssl asn1parse -in c:\__\dns.ext -inform DER
выведет
Код: 0:d=0 hl=2 l= 33 cons: SEQUENCE
2:d=1 hl=2 l= 3 prim: OBJECT :X509v3 Subject Alternative Name
7:d=1 hl=2 l= 26 prim: OCTET STRING [HEX DUMP]:30188209646F6D61696E2E
7275820B2A2E646F6D61696E2E7275
Это первичная структура расширения сертификата - последовательность (SEQUENCE) в которой может быть OBJECT IDENTIFIER указывающий что это за расширение; BOOLEAN, указывающий если расширение критичное (здесь нет, значит некритичное); OCTET STRING - собственно любое значение расширения (дальнейший разбор зависит от того, какое это расширение). Для дальнейшего разбора можно указать смещение - берем 7 из начала строки OCTET STRING и hl=2, 7+2=9 Код:D:\Programs\OpenSSL110\bin>openssl asn1parse -in c:\__\dns.ext -inform DER -strparse 9
0:d=0 hl=2 l= 24 cons: SEQUENCE
2:d=1 hl=2 l= 9 prim: cont [ 2 ]
13:d=1 hl=2 l= 11 prim: cont [ 2 ]
В cont [ 2 ] cont показывает, что тип зависит от контекста. По факту это строка доменного имени, просто в таком "оторванном от сертификата" виде openssl не понимает что это.
https://www.openssl.org/....0.2/man1/asn1parse.htmlhttps://www.openssl.org/...ASN1_generate_nconf.htmlДля создания кодированной ASN.1 структуры там же есть параметры -genstr или -genconf и -out Код:D:\Programs\OpenSSL110\bin>openssl asn1parse -genconf c:\__\11.txt -out c:\__\dns2.ext
Код:asn1=SEQUENCE:MyExt
[MyExt]
name=OID:X509v3 Subject Alternative Name
value=FORMAT:HEX,OCT:30188209646F6D61696E2E7275820B2A2E646F6D61696E2E7275
такой конфиг эквивалентен первому разбору dns.ext Однако конечно надо еще получить значение для OCTET STRING Код:asn1=SEQUENCE:MyExt2
[MyExt2]
name.0=IMPLICIT:2C,IA5:domain.ru
name.1=IMPLICIT:2C,IA5:*.domain.ru
Этот конфиг эквивалентен второму разбору.
Совмещенный конфиг, создает файл одинаковый с dns.ext. Думаю не надо лишний раз объяснять, что domain.ru менять под себя. Имена параметров в секции в которую перешли как SEQUENCE в общем-то игнорируются, но если одинаковые, то либо в начале пишется разная цифра 0.name 1.name либо в конце name.0 name.1 Код:asn1=SEQUENCE:MyExt1
[MyExt1]
name=OID:X509v3 Subject Alternative Name
value=OCTWRAP,SEQUENCE:MyExt2
[MyExt2]
name.0=IMPLICIT:2C,IA5:domain.ru
name.1=IMPLICIT:2C,IA5:*.domain.ru
Замечу, что если кодируете аналогичное в конфиге самого openssl для создания запроса на сертификат, то это задается гораздо проще, так как openssl уже знает что это расширение и какой формат расширения, делает большую часть работы на автомате: Код:subjectAltName = @alt_names
[alt_names]
DNS.1 = a.res-nsdi.ru
IP.1 = 195.208.4.1
Отредактировано пользователем 24 сентября 2021 г. 13:05:10(UTC)
| Причина: Не указана
|
2 пользователей поблагодарили two_oceans за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.10.2021(UTC) Сообщений: 2 Сказал(а) «Спасибо»: 2 раз
|
Автор: Александр Лавник Автор: SIB_ZK В документации нет упоминание о возможности использования параметра -altname. Уточните, пжл, где именно это указано. Вероятно, еще не внесли в документацию. Сборка КриптоПро CSP 5.0.12266 (5.0 R3 на текущий момент)- промежуточная несертифицированная. Посмотреть наличие параметра можно во встроенной справке: Код:cryptcp -creatrqst -help
...
-altname <имя> добавить альтернативное имя субъекта (DNS-name) к запросу
...
Добрый день, кто сможет по подробнее описать, как можно сформировать запрос на сертификат с дополнительным полем SAN. Только не в openssl. С алгоритмом ГОСТ Р 34.11-2012 256 бит. КриптоПро CSP 5.0.12266 поставил. Столкнулся с этим впервые, буду очень благодарен!
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.01.2021(UTC) Сообщений: 17 Откуда: Новосибирск Поблагодарили: 1 раз в 1 постах
|
Добрый день! 1. Устанавливаешь КриптоПро CSP 5.0. Можно использовать временную лицензию на 14 дней. 2. Скачать утилиту cryptcp.x64.exe для КриптоПро CSP 5.0 с официального сайта КриптоПро. 3. Выполняем команду путь\cryptcp.x64.exe -creatrqst путь\test.csr -provtype 80 -cont TEST -dn "C=**,ST=*,L=*,O=*,OU=*,CN=*" -both -ku -hashAlg 1.2.643.7.1.1.2.2 -certusage "1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2" -altname * где: путь\test.cs - место расположение запроса. ВАЖНО!!! Запрос создается без -----BEGIN CERTIFICATE REQUEST----- (в начале) и -----END CERTIFICATE REQUEST----- (в конце). Данные строки необходимо добавить руками. -provtype 80 - используемый алгоритм. 75 GOST R 34.10-2001 Signature with Diffie-Hellman Key Exchange 80 GOST R 34.10-2012 (256) Signature with Diffie-Hellman Key Exchange 81 GOST R 34.10-2012 (512) Signature with Diffie-Hellman Key Exchange -cont TEST - создать контейнер закрытого ключа с именем ***. -dn "C=..." - данные субъекта. -both - использование сертификата для подписи и шифрования. -certusage "1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2" - использования сертификата. проверка клиента и сервера. -altname - добавить доменное имя. Отредактировано пользователем 20 октября 2021 г. 7:32:37(UTC)
| Причина: Не указана
|
1 пользователь поблагодарил SIB_ZK за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,453 Сказал «Спасибо»: 53 раз Поблагодарили: 793 раз в 732 постах
|
Автор: SIB_ZK Добрый день!
1. Устанавливаешь КриптоПро CSP 5.0. Можно использовать временную лицензию на 14 дней. 2. Скачать утилиту cryptcp.x64.exe для КриптоПро CSP 5.0 с официального сайта КриптоПро. 3. Выполняем команду путь\cryptcp.x64.exe -creatrqst путь\test.csr -provtype 80 -cont TEST -dn "C=**,ST=*,L=*,O=*,OU=*,CN=*" -both -ku -hashAlg 1.2.643.7.1.1.2.2 -certusage "1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2" -altname * где: путь\test.cs - место расположение запроса. ВАЖНО!!! Запрос создается без -----BEGIN CERTIFICATE REQUEST----- (в начале) и -----END CERTIFICATE REQUEST----- (в конце). Данные строки необходимо добавить руками. -provtype 80 - используемый алгоритм. 75 GOST R 34.10-2001 Signature with Diffie-Hellman Key Exchange 80 GOST R 34.10-2012 (256) Signature with Diffie-Hellman Key Exchange 81 GOST R 34.10-2012 (512) Signature with Diffie-Hellman Key Exchange -cont TEST - создать контейнер закрытого ключа с именем ***. -dn "C=..." - данные субъекта. -both - использование сертификата для подписи и шифрования. -certusage "1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2" - использования сертификата. проверка клиента и сервера. -altname - добавить доменное имя. Здравствуйте. Пара уточнений: 1) Демо-лицензия КриптоПро CSP действует 3 месяца с момента первой установки. 2) Для создания запроса на сертификат действующая лицензия КриптоПро CSP вообще не нужна. |
|
1 пользователь поблагодарил Александр Лавник за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.10.2021(UTC) Сообщений: 2 Сказал(а) «Спасибо»: 2 раз
|
Огромнейшее спасибо SIB_ZK и Александру! Запрос создается С -----BEGIN CERTIFICATE REQUEST----- (в начале) и -----END CERTIFICATE REQUEST----- (в конце) Руками дописывать не требуется.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.01.2023(UTC) Сообщений: 7 Откуда: Москва
|
Коллеги, добрый день! У меня появился вопрос, который касается создания pkcs10. Не могли бы вы подсказать, на форуме у вас представлена функция, которая включает в себя ДСЧ, а после формирование запроса на сертификат. Есть ли у вас методы/возможности, которые бы позволили создать запрос на сертификат уже с существующим контейнером на токене? То есть пропустить шаг ДСЧ, а просто передать, например, идентификатор ключевого контейнера для формирования запроса на сертификат. Спасибо!
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,431
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 574 раз в 400 постах
|
Если вы имеете в виду cryptcp -creatrqst, то да: Код:cryptcp -creatrqst -nokeygen -cont имя_конетейнера -rdn CN=что-то sample.req
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close