2014-10-14 2 views
0

Я работаю в среде с несколькими веб-серверами (> 20) и серверами приложений (> 10). При вызове многих веб-сервисов моих клиентов в дополнение к стандартному рукопожатию SSL требуется, чтобы к запросу на аутентификацию был прикреплен сертификат. В настоящее время мы сохраняем эти сертификаты в локальном магазине каждого сервера. Поскольку мы получаем больше серверов и больше клиентов, это не будет поддерживаться. Планируется переместить сертификаты на выделенный сервер сертификатов.Чтение из удаленного хранилища сертификатов с .Net

Я искал документацию о том, как получить сертификаты из удаленного хранилища в .Net, но ничего не смог найти. Кто-нибудь знает, где я могу найти какую-либо документацию или какой-нибудь код .Net, который они могли бы разделить.

ответ

0

Вы можете читать удаленные окна магазина, используя тот же X509Store, как для локального перечисления сертификата

public static X509Certificate2 GetCertificate(string subject, string machine) 
{ 
    var sp = new StorePermission(PermissionState.Unrestricted); 
    sp.Flags = StorePermissionFlags.OpenStore | StorePermissionFlags.EnumerateCertificates; 
    sp.Assert(); 
    return GetCertificate(subject, new X509Store(string.Format(@"\\{0}\MY", machine), StoreLocation.LocalMachine)); 
} 


public static X509Certificate2 GetCertificate(string subject, X509Store store) 
{ 
    store.Open(OpenFlags.ReadOnly); 

    try 
    { 
     var cert = MatchCert(store.Certificates, subject); 

     return cert; 
    } 
    finally 
    { 
     store.Close(); 
    } 
} 
+0

Привет, Я не могу получить доступ к удаленному компьютеру с использованием вышеуказанного кода segment.It всегда побуждает меня неправильно сетевой путь X509Store storex = new X509Store (@ "\\ AA-LAP-111 \ MY", StoreLocation.LocalMachine); Просьба сообщить –

+0

Необходимо проверить имя сети сервера (в первую очередь) – oleksa

+0

Необходимо проверить имя сети сервера (в первую очередь). Затем я хотел бы предложить запустить mmc.exe, нажать Ctrl + M и попытаться подключиться к хранилищу сертификатов удаленного сервера (для проверки разрешений). И последнее: к сожалению, вы можете читать только сертификат и открытый ключ. Закрытый ключ недоступен и не может быть получен с удаленного сервера. Чтобы использовать сертификат с закрытым ключом из сети, вы должны изменить подход к нестандартному коду. См. [Link] http://stackoverflow.com/questions/27687798/cms-signing-in-net-with-certificate-chain-not-in-local-trusted-certificate-stor для подробностей – oleksa

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