Коллеги, большое всем спасибо за помощь, я таки разобрался как подписать этой подписью.
помогло -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.
;снова УСПЕХ, ключ указан через отпечаток!!!
Вот список сертификатов:
![](/forum2/Themes/soclean/icon_file.gif)
list.txt
(6kb) загружен 5 раз(а).И вот я пока так представляю, допустим, что-то мешает работать через слепок (явно что-то в openSSL+gostengy, сайты-то работают).
Тогда я перейду на именование по контейнеру.
Но вот другая проблема сразу - вот получил я список сертификатов чудесной утилитой certmgr.exe (Кстати, Дмитрий, спасибо отдельное за неё, не знал).
И тот сертификат которым я подписываю успешно по слепку имеет имя контейнера с русскими буквами и с пробелами. А openssl.exe не умеет в кавычках принимать, в итоге решение через c: работает для одного но не работает для другого. Переименовать можно как-то контейнер?
Отредактировано пользователем 5 декабря 2019 г. 10:58:22(UTC)
| Причина: Не указана