26.02.2007 23:34:43Storeman для Windows или что-то аналогичное для CryptoPro CSP 2.0 Ответов: 10
Dmitry F.
Здравствуйте! Требуется утилита командной строки для установки сертификата с привязкой к ключевому контейнеру (без установленного пароля на контейнер) из командной строки без отбражения какого бы то ни было GUI. После долгого изучения форума выяснилось, что для соляриса такая утилита есть - это storeman(http://www.cryptopro.ru/CryptoPro/forum/view.asp?q=1595). Есть ли что-то аналогичное для Windows 2000/XP/2003? Ссылки на http://www.cryptopro.ru/CryptoPro/products/command.asp и http://www.cryptopro.ru/CryptoPro/products/crypto_arm.asp уже не рабочие, хоть и есть в ответах на форуме (http://www.cryptopro.ru/CryptoPro/forum/view.asp?q=1832). Help!`
 
Ответы:
27.02.2007 9:54:15Kirill Sobolev
http://www.cryptopro.ru/cryptopro/products/cryptcp/default.htm
http://www.cryptopro.ru/cryptopro/products/crypto-arm/default.htm
27.02.2007 14:22:49Dmitry F.
Спасибо, ссылку на cryptcp я уже нашел и скачал этот файл. Пытаюсь, используя временную лицензию, привязать сертификат к закрытому ключу, хранящемуся в контейнере.
использую опцию -instcert cert.cer. После этого выдается список контейнеров, с предложением ввести нужный номер контейнера. Ввожу - получаю ошибку: Cannot find object or property (0x80092004). Привязка через GUI проходит нормально. Возникают вопросы:

1. Есть ли полноценная документация на cryptcp? cryptcp.exe -instcert -help выдает:
Утилита командной строки для защиты данных.
-instcert - Установка сертификата изданного сертификата из файла PKCS #7.
Информация по параметрам команд пока недоступна. Пожалуйста, обратитесь к описанию. [ErrorCode: 0x00000002]

2. Какая же это утилита командной строки, если она выдает приглашения? Мне необходимо полностью автоматизировать процесс привязки сертификата к закрытому ключу, хранящемуся в контейнере, без участия пользователя. Видимо, требуется подробное и полное описание ключей cryptcp. Или на такие подвиги утилита неспособна в принципе? Тогда посоветуйте что-то способное. Help!
27.02.2007 15:40:26Kirill Sobolev
Ссылки на документацию собственно внизу страницы
http://www.cryptopro.ru/cryptopro/products/cryptcp/default.htm
27.02.2007 20:34:54Dmitry F.
Спасибо за ссылку, документацию изучил. Теперь натыкаюсь на ту же ошибку, что описана здесь (но без решения): http://www.cryptopro.ru/cryptopro/forum/view.asp?q=4444.

использую командную строку:
cryptcp.exe -instcert -cont "Avangard2007" -ku -du avangard2007.cer

контейнер в реестре, имя у контейнера "Avangard2007", сертификат в формате base64, предварительно создан так: cryptcp -copycert -dn "7702609364 770201001 7702" -u -df avangard2007.cer
28.02.2007 14:02:31Василий
Можно прокомментировать:
"сертификат в формате base64, предварительно создан так: cryptcp -copycert -dn "7702609364 770201001 7702" -u -df avangard2007.cer"

Если всё так, значит, сертификат уже был установлен в хранилище. Зачем его ещё раз ставить?
01.03.2007 0:21:49Dmitry F.
Поясняю. Есть хранилище с закрытым ключом. Контейнер - реестр. Есть сертификат, созданный вышеуказанным способом. Теперь переносим хранилище на другую машину. Возникает необходимость связать закрытый ключ в хранилище с сертификатом. Пока это получается только вызовом мастера из панели управления CryptoPro. Необходимо делать это в пакетном режиме из командной строки, т.к. предполагается автоматизировать этот процесс и избавить конечного пользователя от необходимости щелкать по кнопкам. Причин для такой автоматизации масса - вплоть до автоматического восстановления разрушенного профиля (личные сертификаты, как известно, храняться в профиле пользователя). Как у пользователя возникает в контейнере "реестр" закрытый ключ - дело десятое, это уже автоматизировано. Осталось лишь автоматизировать связывание сертификата с закрытым ключом, хранящимся в контейнере. По идее, здесь и должна помочь cryptcp. Пока не получается ее так использовать, а очень надо. Help!
01.03.2007 0:27:00Dmitry F.
Если пояснять дальше необходимость автоматизации, то у нас порядка десятка организаций, сдающих отчетность через Такском. Бухгалтеры, отвечающие за эти организации, могут меняться в соответствии с текущими производственными потребностями. Хочется автоматизировать весь процесс установки сертификатов для большого числа организаций и бухгалтеров, т.к. ручное отслеживание очень трудоемкое. Удаление/установку контейнеров автоматизировать получается, теперь осталось решить вторую половину задачи - связывание сертификатов с закрытыми ключами...
01.03.2007 10:39:23maxdm
1. Сертификат установлен в контейнер закрытого ключа?
2. Если да, то написать утилиту, устанавливающую все сертификаты из доступных ключевых контейнеров в Store с созданием ссылок на ключ займет у мало-мальски грамотного программиста максимум полчаса.
01.03.2007 10:56:32Василий
Со своей стороны, поясню ещё один момент.
Личные сертификаты пользователя (Win2000 и выше) хранятся в виде файлов в папке
\Documents and Settings\<имя пользователя>\Application Data\Microsoft\SystemCertificates\My\Certificates\
Название файла - это значение поля "Отпечаток" при просмотре сертификата в окне.
Чтобы перенести сертификат(ы) вместе с привязкой к ключу(ам) - достаточно скопировать файл(ы) с машины на машину.
И отдельно перенести сами секретные ключи.
01.03.2007 19:20:24Dmitry F.
2 maxdm: я бы и написал, если бы было время с этим разбираться (с CryptoAPI).

Василий, спасибо, действительно простое копирование в указанный путь помогает. Совсем вылетело из головы, что My хранится именно там. Думаю, вопрос можно считать закрытым. Спасибо!