Итак, я пытаюсь импортировать существующий сертификат (в формате DER, CER и / или PEM) на USB-токен PKI, у которого уже есть закрытый ключ, соответствующий сертификату.
Сначала в общем, я могу успешно добавить сертификат в хранилище сертификатов windows (My / Personal), используя код в VB. net. Во-вторых, я даже могу сопоставить и привязать сертификат к ключу (используя для этого certutil -repairstore, выполняемый из моей программы vb. net)
Теперь проблема: приведенная выше часть добавляет сертификат в магазин P C и сопоставляет его с ключом для использования на этом компьютере. Однако сертификат фактически не добавляется в токен USB PKI. Это означает, что если я перенесу его на другой P C, у меня будет только закрытый ключ.
Теперь я считаю, что его можно будет добавить к токену (у которого есть собственный CSP btw.)
Причина в том, что если я вставлю токен в P C и импортирую сам сертификат непосредственно в диспетчер сертификатов через MM C в windows, он будет автоматически сопоставить с закрытым ключом И также установить его на самом токене.
Такое ощущение, что это должно быть возможно и с помощью кодирования, не так ли? Я тоже пробовал через PowerShell, но не повезло. certutil может импортировать сертификаты непосредственно на токен, однако, только если вы предоставите файл PFX, которого у меня нет, так как закрытый ключ доступен только для токена.
В настоящее время импорт осуществляется сделано: Dim collection = New X509Certificate2Collection ()
collection.Import(V_EndEntity)
Dim store = New X509Store(StoreName.My, StoreLocation.CurrentUser)
store.Open(OpenFlags.MaxAllowed)
Try
For Each certificate As X509Certificate2 In collection
store.Add(certificate)
Next
Finally
store.Close()
End Try
Есть предложения?