Установка сертификата
От: Аноним  
Дата: 06.12.13 09:21
Оценка:
Подскажите как программно можно установить сертификат на компьютер при наличии файла сертификата?
Re: Установка сертификата
От: Nuseraro Россия  
Дата: 06.12.13 09:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Подскажите как программно можно установить сертификат на компьютер при наличии файла сертификата?


Как-то так наверное...
http://msdn.microsoft.com/ru-ru/library/e78byta0(v=vs.110).aspx
Homo Guglens
Re: Установка сертификата
От: dpyzh  
Дата: 06.12.13 09:27
Оценка: 8 (1)
Здравствуйте, Аноним, Вы писали:

А>Подскажите как программно можно установить сертификат на компьютер при наличии файла сертификата?


Установка одного корневого и двух промежуточных сертификатов на уровне компьютера:

        X509Certificate2 SampleRootCA = new X509Certificate2(Properties.Resources.SampleRootCA);
        X509Certificate2 SampleSubordinateCA1 = new X509Certificate2(Properties.Resources.SampleSubordinateCA1_1_);
        X509Certificate2 SampleSubordinateCA2 = new X509Certificate2(Properties.Resources.SampleSubordinateCA2_2_);
        X509Store root = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
        X509Store intermediate = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine);
        root.Open(OpenFlags.ReadWrite);
        if (root.Certificates.Find(X509FindType.FindByThumbprint, SampleRootCA.Thumbprint, false).Count == 0)
            root.Add(SampleRootCA);
        root.Close();
        intermediate.Open(OpenFlags.ReadWrite);
        if (intermediate.Certificates.Find(X509FindType.FindByThumbprint, SampleRootCA.Thumbprint, false).Count == 0)
            intermediate.Add(SampleRootCA);
        if (intermediate.Certificates.Find(X509FindType.FindByThumbprint, SampleSubordinateCA1.Thumbprint, false).Count == 0)
            intermediate.Add(SampleSubordinateCA1);
        if (intermediate.Certificates.Find(X509FindType.FindByThumbprint, SampleSubordinateCA2.Thumbprint, false).Count == 0)
            intermediate.Add(SampleSubordinateCA2);
        intermediate.Close();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.