Личный сертификат iKeyman исчез

Я создал запрос на сертификат, отправил этот запрос в орган, получил обратно подписанный сертификат. используя iKeyman, я добавил все сертификаты подписантов и успешно получил подписанный сертификат в свою базу данных ключей. Я видел, как удалялся запрос при добавлении личного сертификата. Я закрыл iKeyman, а когда снова открыл Personal cert. больше не числился? и, естественно, я не могу получить снова, потому что запроса больше не существует. Как я могу воссоздать тот же запрос или любой другой способ добавить личный сертификат в мою базу данных ключей.

Обновление из комментариев 15 сентября 2015 г.
runmqakm -cert -list показан список сертификатов
ОС — Windows Server 2008 R2
IKeyman версии 8.0.382.CMS provider версии 2.45 .
Учетная запись, под которой выполняются все операции, является локальным администратором.

Мой вывод:

C:\ProgramData\IBM\MQ\ssl>runmqakm -cert -list all -db key.kdb 
5724-H72 (C) Copyright IBM Corp. 1994, 2014. 
Source database password : ****** 
Certificates found 
* default, - personal, ! trusted, # secret key 
! XXX-Root-CA 
! XXX-Intermediate-CA 
! XXX-Issuing-CA 
! ibmwebspheremqusapp1u 

C:\ProgramData\IBM\MQ\ssl>runmqakm -certreq -list all -db key.kdb 
5724-H72 (C) Copyright IBM Corp. 1994, 2014. 
Source database password : ****** 
No certificate requests were found

person Yuri    schedule 14.09.2015    source источник
comment
Здесь не так много информации. Можете ли вы добавить к вашему вопросу? Например, вы проверили это с runmqakm -cert -list и runmqakm -certreq -list? Какие права доступа к файлам? Винда или линукс? Версия МК? Версия GSKit? Очевидно, что описанное поведение не должно происходить, поэтому нам потребуется больше деталей, чтобы выяснить, почему оно произошло или это ошибка.   -  person T.Rob    schedule 15.09.2015
comment
Да, runmqakm -cert -list показал список сертификатов, ОС - Windows Server 2008 R2, IKeyman версии 8.0.382.CMS провайдера версии 2.45. Учетная запись, под которой выполняются все операции, является локальным администратором.   -  person Yuri    schedule 15.09.2015
comment
Мой вывод: C:\ProgramData\IBM\MQ\ssl›runmqakm -cert -list all -db key.kdb 5724-H72 (C) Copyright IBM Corp. 1994, 2014. Пароль исходной базы данных: ****** Сертификаты найдено * по умолчанию, - личное, ! доверенный, # секретный ключ ! XXX-Корневой ЦС ! XXX-средний-CA ! XXX-Выпуск-CA ! ibmwebspheremqusapp1u C:\ProgramData\IBM\MQ\ssl›runmqakm -certreq -list all -db key.kdb 5724-H72 (C) Copyright IBM Corp. 1994, 2014. Пароль исходной базы данных: ****** Нет запросов на сертификат были найдены   -  person Yuri    schedule 15.09.2015


Ответы (1)


Вы правы в том, что у KDB нет личного сертификата и выдающегося CSR. Однако, если сертификат с меткой ibmwebspheremqusapp1u является тем, который должен быть личным сертификатом, теперь он загружается как доверенный сертификат. Невозможно восстановить закрытый ключ из KDB, как описано, и если нет файла резервной копии, этот сертификат не подлежит восстановлению. Лучшее, на что вы можете надеяться, это то, что ЦС позволяет клиентам повторно использовать сертификат.

Невозможно достичь этого состояния без выдачи runmqakm -cert -add. Ожидаемой командой была бы runmqakm -cert -receive, которая объединила бы ответ от ЦС с исходным ожидающим CSR и создала бы полный персональный сертификат. Либо это было сделано, либо это не та KDB, в которой был создан этот CSR, потому что, как вы указываете, нет незавершенных CSR.

Предполагая, что это не вызвано ошибкой GSKit и что это та же KDB, в которой был создан CSR, в какой-то момент после успешного получения CSR личный сертификат был удален, а ответ от CA повторно добавлен с использованием runmqakm -cert -add. Альтернативой является то, что CSR был явно удален (о чем, я полагаю, вы бы помнили, если бы это было так), или же у GSKit есть неприятная и опасная ошибка, которую вы пока единственный человек обнаружили.

С этой стороны экрана сложно однозначно определить ошибку GSKit или ошибку пользователя, однако с вашей стороны возможно: а) предотвратить повторение подобного; и б) возможно, сделать это окончательное определение. «Как мне это сделать?» — спросите вы?

Всегда делайте резервную копию KDB или JKS, прежде чем выполнять против них команды, если в них есть закрытый ключ, CSR или личный сертификат. Вы всегда можете восстановить доверенные сертификаты, но закрытый ключ или все, что его содержит, является единственным в своем роде и незаменимым. Не рискуйте потерять его, оперируя единственной существующей копией.

Например, после отправки CSR и получения ответа от ЦС скопируйте файлы key.* в key.[timestamp].* и пометьте файлы резервных копий как доступные только для чтения перед получением CSR обратно. Если receive завершится успешно, все готово. Если нет, вы можете скопировать резервные копии поверх поврежденного kdb или в новый набор файлов kdb (никогда не работайте с резервными копиями!) и попытаться воссоздать проблему, чтобы определить, является ли это ошибкой или ошибкой пользователя.

Резервная KDB с ожидающим CSR всегда вернет вас к состоянию, в котором вы находились сразу после создания CSR, чтобы вы могли повторять свои шаги столько раз, сколько необходимо. Если вы можете надежно воссоздать ошибку и считаете, что это ошибка GSKit, откройте PMR в IBM. Это маловероятный сценарий, но я знаю, что это происходит, потому что однажды я обнаружил ошибку GSKit, которая уничтожает все хранилище ключей. Отсюда моя рабская приверженность стратегии резервного копирования перед изменением. Как и вы, я тоже выучил это на собственном горьком опыте.

person T.Rob    schedule 15.09.2015