Статус: Участник
Группы: Участники
Зарегистрирован: 12.01.2021(UTC) Сообщений: 17  Откуда: Новосибирск Поблагодарили: 1 раз в 1 постах
|
Добрый день! Прошу подсказать: можно ли используя КриптоПРО CSP 4.0 создать контейнер закрытого ключа и запрос на сертификат, используя для этого командную строку и команды cryptcp и csptest? В запросе обязательно должен быть параметр субъекта Subject Alternative Name.
Или необходимо иметь КриптоПро TLS и без него нельзя создать необходимый запрос?
Сертификат необходим для закрытия канала TLS, связка nginx и КриптоПРО CSP.
P.S. Отдельно я смог создать ключ и запрос, но в запрос не смог добавить параметр SAN
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.01.2021(UTC) Сообщений: 17  Откуда: Новосибирск Поблагодарили: 1 раз в 1 постах
|
В идеале необходимо что-то вроде конфигурационного файла для openssl, который позволяет гибко настроить выпуск ключе\запросов.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.01.2021(UTC) Сообщений: 17  Откуда: Новосибирск Поблагодарили: 1 раз в 1 постах
|
Смог найти решение: При заполнение данных о субъекте -dn "C=***,ST=***,L=***,O=***,OU=**,CN=***,OID.2.5.29.17=***" Помимо стандартного набора параметров C, CN и т.д. можно использовать расширенные (T - псевдоним) и коды OID (OID.2.5.29.17 - SAN). Единственный вопрос с поиском этих кодов.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 2,958   Сказал «Спасибо»: 48 раз Поблагодарили: 660 раз в 620 постах
|
Автор: SIB_ZK  Смог найти решение: При заполнение данных о субъекте -dn "C=***,ST=***,L=***,O=***,OU=**,CN=***,OID.2.5.29.17=***" Помимо стандартного набора параметров C, CN и т.д. можно использовать расширенные (T - псевдоним) и коды OID (OID.2.5.29.17 - SAN). Единственный вопрос с поиском этих кодов. Здравствуйте. Уточните, пожалуйста, у Вас цель, чтобы в запрос в Subject Alternative Name попадало DNS-имя? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.01.2021(UTC) Сообщений: 17  Откуда: Новосибирск Поблагодарили: 1 раз в 1 постах
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 2,958   Сказал «Спасибо»: 48 раз Поблагодарили: 660 раз в 620 постах
|
Автор: SIB_ZK  Добрый день! Да, DNS имя. В cryptcp, который идет вместе с КриптоПро CSP 5.0.12266 реализована поддержка параметра -altname, с помощью которого можно задать DNS-имя (или несколько) при создании запроса: Код:cryptcp -creatrqst -dn "CN=test" -altname "domain.ru" -altname "*.domain.ru" ...
В более старых сборках это можно сделать только с помощью файла с закодированным расширением: Код:cryptcp -creatrqst -dn "CN=test" -ext dns.ext ...
Пример такого файла - dns.zip (1kb) загружен 11 раз(а).. Его можно открыть в ANS.1 редакторе, строки с DNS-именами - ASCII символы, представленные в hex числах. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.01.2021(UTC) Сообщений: 17  Откуда: Новосибирск Поблагодарили: 1 раз в 1 постах
|
Подскажите, пожалуйста, где можно найти документацию Приложение командной строки для подписи и шифрования файлов для версии 5.0. Смог найти только для 4.0 и более старые версии. не актуально. Отредактировано пользователем 22 сентября 2021 г. 12:26:44(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.01.2021(UTC) Сообщений: 17  Откуда: Новосибирск Поблагодарили: 1 раз в 1 постах
|
В документации нет упоминание о возможности использования параметра -altname. Уточните, пжл, где именно это указано.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 2,958   Сказал «Спасибо»: 48 раз Поблагодарили: 660 раз в 620 постах
|
Автор: SIB_ZK  В документации нет упоминание о возможности использования параметра -altname. Уточните, пжл, где именно это указано. Вероятно, еще не внесли в документацию. Сборка КриптоПро CSP 5.0.12266 (5.0 R3 на текущий момент)- промежуточная несертифицированная. Посмотреть наличие параметра можно во встроенной справке: Код:cryptcp -creatrqst -help
...
-altname <имя> добавить альтернативное имя субъекта (DNS-name) к запросу
...
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.01.2021(UTC) Сообщений: 17  Откуда: Новосибирск Поблагодарили: 1 раз в 1 постах
|
Добрый день! Вы писали: Цитата:В более старых сборках это можно сделать только с помощью файла с закодированным расширением:
Код: cryptcp -creatrqst -dn "CN=test" -ext dns.ext ...
Пример такого файла - dns.zip (1kb) загружен 3 раз(а)..
Его можно открыть в ANS.1 редакторе, строки с DNS-именами - ASCII символы, представленные в hex числах. Как подготовить файл dns.ext? Как вообще пользоваться тегом -ext?
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,536  Откуда: Иркутская область Сказал(а) «Спасибо»: 105 раз Поблагодарили: 375 раз в 354 постах
|
Добрый день. Утилитами, которые работают с кодировкой 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) Сообщений: 2,958   Сказал «Спасибо»: 48 раз Поблагодарили: 660 раз в 620 постах
|
Автор: 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----- (в конце) Руками дописывать не требуется.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close