2014-01-17 3 views
1

У меня есть сертификат, загруженный в Azure. Я также потерял оригинальный сертификат на своей машине (oops!).Экспортируйте сертификат из облачного сервиса Azure

Теперь мне нужно восстановить сертификат, экспортирующий его из облачной службы Azure.

Этот код работает в контексте облачной службы получает правильный сертификат:

var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly); 

var certificate = store.Certificates 
    .Cast<X509Certificate2>() 
    .SingleOrDefault(c => string.Equals(c.Thumbprint, "<THUMBPRINT>", StringComparison.OrdinalIgnoreCase)); 

Но когда я пытаюсь экспортировать сертификат (X509Certificate2.Export), он бросает исключение:

System.Security.Cryptography.CryptographicException: ключ недействителен для использования в указанном состоянии.

Можно ли его экспортировать в любом случае?

+0

Возможно установлен сертификат помечается как экспортируемый. – MikeWo

+0

вы должны пометить закрытый ключ для экспорта, иначе вы не сможете экспортировать PFX так, как вы сейчас пытаетесь установить - http://stackoverflow.com/questions/9358129/cryptographicexception-key-not-valid-for-use-in -specified-state-while-try – ramiramilu

+0

Я добавил ответ, указав на командлет Get-AzureCertificate PowerShell, но Gaurav правильно указал, что это не сработает, если вам понадобится сертификат с закрытым ключом. Я удалил ответ, потому что он неверен. – MikeWo

ответ

0

Включите удаленный рабочий стол в своей роли Web/Worker, подключитесь к нему, а затем вы можете использовать Mimikatz для восстановления сертификата (включая закрытый ключ), , даже если он отмечен как не экспортируемый.

Mimikatz (руководство на французском языке): http://blog.gentilkiwi.com/mimikatz/crypto#exportCertificates

Смежные вопросы