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

Уведомление

Icon
Error

67 Страницы«<5657585960>»
Опции
К последнему сообщению К первому непрочитанному
Offline Coriolis  
#571 Оставлено : 4 декабря 2019 г. 19:02:21(UTC)
Coriolis

Статус: Участник

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

Сказал «Спасибо»: 4 раз
Поблагодарили: 3 раз в 2 постах
Автор: Дмитрий Пичулин Перейти к цитате
Автор: Coriolis Перейти к цитате
OpenSSL> cms -sign -in "in.bin" -signer cert.cer -out "out.signed" -outform DER -noattr -binary -engine gostengy -keyfor
m ENGINE -inkey "b4 16 85 05 0c 02 f5 52 e3 b7 3b 22 aa 83 fe f2 19 f3 74 f5"
engine "gostengy" set.
cannot load signing key file from engine
7368:error:26096080:engine routines:ENGINE_load_private_key:failed loading private key:crypto\engine\eng_pkey.c:78:
unable to load signing key file

Вы уверены в аргументах, в вашем хранилище точно есть сертификат с отпечатком "b4 16 85 05 0c 02 f5 52 e3 b7 3b 22 aa 83 fe f2 19 f3 74 f5"?



Дмитрий, обе сертификата с закрытым ключом были выгружены средствами Windows с машин клиентов через pfx и импортированы на тестовую машину в реестр сертификатов, раздел "Личное"
[img=https://yadi.sk/i/gtvIVj2aZ-z8Yw]Вот этот сертификат[/img]

Отредактировано пользователем 4 декабря 2019 г. 19:04:51(UTC)  | Причина: Не указана

Offline Дмитрий Пичулин  
#572 Оставлено : 4 декабря 2019 г. 19:21:05(UTC)
pd

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

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,442
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: Coriolis Перейти к цитате
Дмитрий, обе сертификата с закрытым ключом были выгружены средствами Windows с машин клиентов через pfx и импортированы на тестовую машину в реестр сертификатов, раздел "Личное"

Хорошо бы увидеть в той же командной строке, где воспроизводится ошибка вывод:

Код:
"C:\Program Files\Crypto Pro\CSP\certmgr.exe" -l
Знания в базе знаний, поддержка в техподдержке
Offline Coriolis  
#573 Оставлено : 4 декабря 2019 г. 19:25:48(UTC)
Coriolis

Статус: Участник

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

Сказал «Спасибо»: 4 раз
Поблагодарили: 3 раз в 2 постах
Автор: Дмитрий Пичулин Перейти к цитате
Автор: Coriolis Перейти к цитате
Дмитрий, обе сертификата с закрытым ключом были выгружены средствами Windows с машин клиентов через pfx и импортированы на тестовую машину в реестр сертификатов, раздел "Личное"

Хорошо бы увидеть в той же командной строке, где воспроизводится ошибка вывод:

Код:
"C:\Program Files\Crypto Pro\CSP\certmgr.exe" -l


out.txt (15kb) загружен 8 раз(а).
Offline Дмитрий Пичулин  
#574 Оставлено : 4 декабря 2019 г. 23:39:16(UTC)
pd

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

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,442
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: Coriolis Перейти к цитате
Автор: Дмитрий Пичулин Перейти к цитате
Автор: Coriolis Перейти к цитате
Дмитрий, обе сертификата с закрытым ключом были выгружены средствами Windows с машин клиентов через pfx и импортированы на тестовую машину в реестр сертификатов, раздел "Личное"

Хорошо бы увидеть в той же командной строке, где воспроизводится ошибка вывод:

Код:
"C:\Program Files\Crypto Pro\CSP\certmgr.exe" -l


out.txt (15kb) загружен 8 раз(а).

Ну да, всё честно, должно работать.

Попробуйте ещё вариант через идентификатор этого ключа: -inkey "3d6013a6835b71c31c46b7900d6b4d04d11c183f"
Знания в базе знаний, поддержка в техподдержке
Offline Андрей Писарев  
#575 Оставлено : 5 декабря 2019 г. 3:33:36(UTC)
Андрей *

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

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

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

Автор: Coriolis Перейти к цитате
Доброго времени суток!
Столкнулся с проблемой, не знаю даже с какой стороны подойти. (-keyform ENGINE указан Speak to the hand )
unable to load signing key file
Есть два сертификата, по обоим можно зайти на сайт (например) на mdlp.crpt.ru, подпись срабатывает, всё ок.




Имеете ввиду - выбрали в списке сертификат и вошли?
Там же передается отпечаток для проверки регистрации в системе, а не подписание каких либо данных.
Хотя могу ошибаться и после проверки отпечатка на регистрацию в ЧЗ - выполняется подписание.



Автор: Coriolis Перейти к цитате

Но вот когда в своём ПО пытаюсь подписать, с одним сертификатом норм с другим ошибка.

...


cannot load signing key file from engine
7368:error:26096080:engine routines:ENGINE_load_private_key:failed loading private key:crypto\engine\eng_pkey.c:78:
unable to load signing key file
error in cms


у того который работает нормально есть в составе пункт "Ограниченная лицензия",
а вот в том которые не работает через gostengy там такого нет. Ну и там всякое различается, если надо я могу сюда приложить открытую часть и того и того.

Обидно что обнаружилось такое уже у клиентов, начали ставить когда уже массово а тут такое.


А статус лицензии на КриптоПРО CSP какой или ошибаюсь в направлении?

Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#576 Оставлено : 5 декабря 2019 г. 5:04:29(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Для gostengy у меня просто было указано default_algorithms = ALL и прописан путь. Интересная у Вас сборка openssl, что находит engine без пути. Впрочем, у меня сейчас такая сборка, что вообще грузит engine из определенной папки без единой строки конфига. Скорее всего конечно дело не в этом, а в лицензии.

На всякий случай можно попробовать: 1) протестировать контейнер b609f9d8-c781-4053-96c1-7275271c8729 на предмет ошибок и процитировать вывод теста сюда. Все же engine только "мостик" к Криптопро CSP и реальная ошибка скорее всего возникает в криптопровайдере. Если дело в лицензии, то тест контейнера выдаст более специфический код ошибки; 2) протестировать вариант с прямым обращением к контейнеру мимо хранилища, это исключит ошибки хранилища сертификатов и привязки
Код:
-inkey c:b609f9d8-c781-4053-96c1-7275271c8729
-inkey c:"b609f9d8-c781-4053-96c1-7275271c8729"

Отредактировано пользователем 5 декабря 2019 г. 5:27:19(UTC)  | Причина: Не указана

Offline Coriolis  
#577 Оставлено : 5 декабря 2019 г. 10:07:29(UTC)
Coriolis

Статус: Участник

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

Сказал «Спасибо»: 4 раз
Поблагодарили: 3 раз в 2 постах
Коллеги, большое всем спасибо за помощь, я таки разобрался как подписать этой подписью.
помогло -inkey c:182520a2-4cc5-48d0-9251-1f5b741cda7f
без кавычек кстати, с кавычками он такой ключ и пытается найти, с кавычками (всплывает окно криптоПРО с требованием вставить носитель)


Цитата:
Попробуйте ещё вариант через идентификатор этого ключа: -inkey "3d6013a6835b71c31c46b7900d6b4d04d11c183f"

так тоже не видет, выдаёт ту же ошибку, пробовал и без кавычек.

Однако! Это частное решение для частной проблемы. А системный подход я не понимаю как выработать.

Я для чистоты эксперимента и логов удалил всё, оставил два сертификата:

И попробовал вот что:
1. подписать Чесноковой с указанием ключа через имя контейнера: успешно
2. подписать Чесноковой с указанием ключа через отпечаток: ошибка, та же самая, я просто для наглядности
3. подписать сертификатом другой фирмы, КТТсервисстрой через отпечаток: успешно!
В чём разница? Ну почему он чеснокову не находит, что не так-то?

Код:

OpenSSL> cms -sign -in "in.bin" -signer cert.cer -out "out.signed" -outform DER -noattr -binary -engine gostengy -keyfor
m ENGINE -inkey c:182520a2-4cc5-48d0-9251-1f5b741cda7f
engine "gostengy" set.
OpenSSL> ;УСПЕХ, ключ указан через имя контейнера!
OpenSSL> cms -sign -in "in.bin" -signer cert.cer -out "out.signed" -outform DER -noattr -binary -engine gostengy -keyfor
m ENGINE -inkey b41685050c02f552e3b73b22aa83fef219f374f5
engine "gostengy" set.
cannot load signing key file from engine
4088:error:26096080:engine routines:ENGINE_load_private_key:failed loading private key:crypto\engine\eng_pkey.c:78:
unable to load signing key file
error in cms
OpenSSL> ;ПРОВАЛ, ключ указан через отпечаток
OpenSSL>
OpenSSL> cms -sign -in "in.bin" -signer cert_ktt.cer -out "out.signed" -outform DER -noattr -binary -engine gostengy -ke
yform ENGINE -inkey 35b8e9bcd33938c11bfb8ef3d6f21eb87488ff3d
engine "gostengy" set.
;снова УСПЕХ, ключ указан через отпечаток!!!


Вот список сертификатов: list.txt (6kb) загружен 5 раз(а).

И вот я пока так представляю, допустим, что-то мешает работать через слепок (явно что-то в openSSL+gostengy, сайты-то работают).
Тогда я перейду на именование по контейнеру.
Но вот другая проблема сразу - вот получил я список сертификатов чудесной утилитой certmgr.exe (Кстати, Дмитрий, спасибо отдельное за неё, не знал).
И тот сертификат которым я подписываю успешно по слепку имеет имя контейнера с русскими буквами и с пробелами. А openssl.exe не умеет в кавычках принимать, в итоге решение через c: работает для одного но не работает для другого. Переименовать можно как-то контейнер?

Отредактировано пользователем 5 декабря 2019 г. 10:58:22(UTC)  | Причина: Не указана

Offline two_oceans  
#578 Оставлено : 5 декабря 2019 г. 10:39:16(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: Coriolis Перейти к цитате
И попробовал вот что:
1. подписать Чесноковой с указанием ключа через имя контейнера: успешно
2. подписать Чесноковой с указанием ключа через отпечаток: ошибка, та же самая, я просто для наглядности
3. подписать сертификатом другой фирмы, КТТсервисстрой через отпечаток: успешно!
В чём разница? Ну почему он чеснокову не находит, что не так-то?
Фундаментально это означает ошибку поиска через хранилище сертификатов по отпечатку, что-то из этого: 1) сертификат с таким отпечатком отсутствует в хранилище или не то хранилище; 2) поиск прерывается на сертификате, расположенном до нужного или на нужном (например, в хранилище некий сертификат с "недопустимыми символами", при этом плагин для сайтов может не спотыкаться на этих же символах); 3) сертификат успешно нашелся, но для него указана неверная ссылка на контейнер (например, контейнер уже переименовали/переместили на другой носитель/удалили/вытащили флешку). Хотя конечно обычно это дает окно "вставьте носитель".
Автор: Coriolis Перейти к цитате
И тот сертификат которым я подписываю успешно по слепку имеет имя контейнера с русскими буквами и с пробелами. А openssl.exe не умеет в кавычках принимать, в итоге решение через c: работает для одного но не работает для другого. Переименовать можно как-то контейнер?
Во-первых, кавычки по идее должны работать, у меня как-то получалось, надо только подобрать их правильное использование. Во-вторых, штатного способа переименования нет, официально нужно сделать копию контейнера с новым именем, проверить, удалить изначальную копию.
После копирования или переименования нужно переустановить сертификат, чтобы связать с новым именем контейнера.

Отредактировано пользователем 5 декабря 2019 г. 11:07:24(UTC)  | Причина: Не указана

Offline Coriolis  
#579 Оставлено : 5 декабря 2019 г. 11:28:36(UTC)
Coriolis

Статус: Участник

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

Сказал «Спасибо»: 4 раз
Поблагодарили: 3 раз в 2 постах
Автор: two_oceans Перейти к цитате
Фундаментально это означает ошибку поиска через хранилище сертификатов по отпечатку, что-то из этого: 1) сертификат с таким отпечатком отсутствует в хранилище или не то хранилище; 2) поиск прерывается на сертификате, расположенном до нужного или на нужном (например, в хранилище некий сертификат с "недопустимыми символами", при этом плагин для сайтов может не спотыкаться на этих же символах); 3) сертификат успешно нашелся, но для него указана неверная ссылка на контейнер (например, контейнер уже переименовали/переместили на другой носитель/удалили/вытащили флешку). Хотя конечно обычно это дает окно "вставьте носитель".
Автор: Coriolis Перейти к цитате
И тот сертификат которым я подписываю успешно по слепку имеет имя контейнера с русскими буквами и с пробелами. А openssl.exe не умеет в кавычках принимать, в итоге решение через c: работает для одного но не работает для другого. Переименовать можно как-то контейнер?
Во-первых, кавычки по идее должны работать, у меня как-то получалось, надо только подобрать их правильное использование. Во-вторых, штатного способа переименования нет, официально нужно сделать копию контейнера с новым именем, проверить, удалить изначальную копию.
После копирования или переименования нужно переустановить сертификат, чтобы связать с новым именем контейнера.


Блестяще! Вот спасибище! В самом деле, правльно использовать вот так:
-inkey "c:ляляляляляляляляляля" вместо -inkey c:"ляляляляляляляляляля"

Так же, с кодировкой проблема, certmgr.exe выгружает в OEM866 (я делаю через certmgr.exe -list >list.txt) и вот в OpenSSL надо передавать в кодировке DOS :-)

Ну, в общем-то обходными путями я проблему у себя решу, большое всем спасибо.

thanks 1 пользователь поблагодарил Coriolis за этот пост.
pd оставлено 05.12.2019(UTC)
Offline two_oceans  
#580 Оставлено : 5 декабря 2019 г. 12:21:35(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: Coriolis Перейти к цитате
Так же, с кодировкой проблема, certmgr.exe выгружает в OEM866 (я делаю через certmgr.exe -list >list.txt) и вот в OpenSSL надо передавать в кодировке DOS :-)
Скорее всего поможет выполнить chcp 1251 перед openssl для использования другой кодировки консоли (и поменять шрифт на "Люсида консоль"). К слову сам openssl также из коробки поддерживает utf8, но не во всех командах (добавить -utf8 к команде, предварительно сменив кодировку консоли chcp 65001, однако обычные системные команды валятся в 65001, поэтому менять на 65001 непосредственно перед вызовом openssl и возвращать на 1251/866 после вызова). к сожалению не в курсе, входит ли команда подписания в их число.

UPD: Да, проверил если выполнить chcp 1251 потом certmgr.exe -list > d:\list.txt то кодировка в файле меняется.

Отредактировано пользователем 5 декабря 2019 г. 12:29:25(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил two_oceans за этот пост.
Андрей * оставлено 05.12.2019(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
67 Страницы«<5657585960>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.