Статус: Участник
Группы: Участники
Зарегистрирован: 25.10.2019(UTC) Сообщений: 10  Откуда: Пермь
|
Приветствую. Ситуация: есть сервер, на котором установлена УКЭП, на котором стоит CSP 5 и утилита crypcp. Запуская из командной строки, команда вида Код:cryptcp.x64.exe -sign -dn "E=<email>" -xlongtype1 -cadesTSA http://tax4.tensor.ru/tsp/tsp.srf <infile> <outfile>
выполняется корректно и формируется файл с результатом. При выполнении этой же команды из-под веб-приложения asp.net получаем ошибку "Can not get certificate private key", при этом сертификат сам найден, проверка цепочек проходит. Веб-приложение запускается под тем же пользователем, под которым запускаем команду в командной строке. При этом, на другом сервере с тестовой подписью от КриптоПро всё работает без ошибок. Отличие только в том, что сертификат на том сервере, где возникает ошибка, состоит из нескольких .key файлов, а тестовый сертификат из одного .cer. С чем это связано и как решить эту проблему?
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 396 раз в 366 постах
|
Автор: podegov  Отличие только в том, что сертификат на том сервере, где возникает ошибка, состоит из нескольких .key файлов, а тестовый сертификат из одного .cer. С чем это связано и как решить эту проблему? Добрый день. Похоже Вы немного путаетесь в терминологии - 6 файлов .key в папке xxxxxxxx.000 - это как раз и есть контейнер закрытого ключа, который вроде как не находится. В контейнере может быть, а может и не быть сертификат (.cer или .crt) внутри файла header.key среди прочей служебной информации. В данном случае Вы указываете е-мэйл для поиска. Если сертификат находится по е-мэйл, то он установлен в хранилище сертификатов. При этом, при установке сертификата вероятно не прописана связь сертификата в хранилище и контейнера. Это можно определить визуально (открываете Пуск - все программы - криптопро - сертификаты пользователя и в хранилище личные видите сертификат, открываете сертификат на просмотр, должна быть надпись внизу белого поля "Есть закрытый ключ для этого сертификата"). В случае когда надписи нет - связь не прописана и утилита не сможет по сертификату найти контейнер и закрытый ключ. В этом случае нужно переустановить сертификат через панель управления КриптоПро вкладка "сервис" кнопка "посмотреть сертификаты в контейнере", по ходу мастера будет кнопка "установить", согласитесь на замену связи. Если этот способ не подошел (например, в контейнере нет сертификата) - нужно сертификат из хранилища сохранить в файл и попробовать на вкладке "сервис" кнопку "установить личный сертификат". Обратите внимание, что если сертификат гост-2012, то версия криптопро должна быть 4.0 или 5.0 (версия 3.6/3.9 не сможет установить связь). Отредактировано пользователем 28 октября 2019 г. 6:17:18(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.10.2019(UTC) Сообщений: 10  Откуда: Пермь
|
Добрый день. Проверили - надпись есть. На всякий случай попробовали экспортировать сертификат из хранилища с закрытым ключом и заново установить по вашей инструкции, но результата это не дало. Я предполагаю, что всё установлено корректно, т.к. подписывание через командную строку работает, а проблема в доступе из-под веб-сервиса. То есть по какой-то причине веб приложение, запущенное из-под того же пользователя, что и командная строка, не может найти закрытый ключ. Может быть для доступа к закрытому ключу какие-то особые права нужны или доступ к определенной папке?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,486   Сказал «Спасибо»: 53 раз Поблагодарили: 802 раз в 741 постах
|
Автор: podegov  Добрый день. Проверили - надпись есть. На всякий случай попробовали экспортировать сертификат из хранилища с закрытым ключом и заново установить по вашей инструкции, но результата это не дало. Я предполагаю, что всё установлено корректно, т.к. подписывание через командную строку работает, а проблема в доступе из-под веб-сервиса. То есть по какой-то причине веб приложение, запущенное из-под того же пользователя, что и командная строка, не может найти закрытый ключ. Может быть для доступа к закрытому ключу какие-то особые права нужны или доступ к определенной папке? Здравствуйте. Возможно, это решит Вашу проблему. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.10.2019(UTC) Сообщений: 10  Откуда: Пермь
|
Цитата:Возможно, это решит Вашу проблему. К сожалению не решило, при попытке дать полный доступ появилась ошибка с недостатком прав (хотя под администратором делали). Но в итоге получилось решить следующим образом: экспорт сертификата, установка через CSP в хранилище компьютера, в настройке пула IIS указали пользователя, а не дефолтное значение, там же Load user profile = false, а в скрипте добавили параметр -m, чтобы поиск выполнялся в хранилище компьютера. Всем спасибо!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close