Как использовать сертификат X.509, созданный на другом компьютере? - PullRequest
0 голосов
/ 27 сентября 2011

Мне нужно зашифровать файл XML с помощью сертификата x509 на одном компьютере и иметь возможность расшифровать его с помощью того же сертификата на другом компьютере. Мне кажется, это не работает, как предлагает Microsoft:

http://msdn.microsoft.com/en-us/library/ms229744.aspx

Процесс дешифрования всегда заканчивается на другом компьютере!

Я создаю сертификат с помощью следующей команды:

makecert -r -pe -n "CN=DEEP_201X" -b 01/01/2011 -e 01/01/2014 -sky exchange -ss my deep.cer

Затем я устанавливаю его с помощью:

certmgr /add deep.cer /s root

И попробуйте получить его закрытый ключ с помощью утилиты FindPrivateKey.exe:

FindPrivateKey My CurrentUser -n "CN=DEEP_201X"

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

В магазине не найдено сертификатов с ключом 'CN = DEEP_201X'.

когда я использую

certmgr /add deep.cer /s my

сообщение об ошибке будет выглядеть так:

Невозможно получить имя файла закрытого ключа

Может кто-нибудь дать мне совет, как заставить его работать?

1 Ответ

0 голосов
/ 01 октября 2011

Я подозреваю, что вам нужен только закрытый ключ на расшифровывающем компьютере.

Однако ...

Если вам действительно нужен закрытый ключ на обоих компьютерах, имейте в виду, что файл .cer не содержит закрытый ключ.

(я думаю) makecert добавляет его на локальный компьютер, когда генерирует сертификат.Вы можете написать это, используя опцию -sv.Затем создайте контейнер pfx для сертификата, который его содержит.

makecert -r -pe -sv myprivatekey.pvk -n "CN=DEEP_201X" -b 01/01/2011 -e 01/01/2014 -sky exchange -ss my deep.cer
pvk2pfx  -pvk myprivatekey.pvk -spc deep.cr -pfx deep_private.pfx

Мне не удалось убедить certmgr импортировать закрытые ключи из командной строки.Используйте его в графическом режиме или используйте оснастку certmgr.msc.

...