Автоматизировать загрузку и установку корневого сертификата - PullRequest
2 голосов
/ 26 сентября 2011

В настоящее время мы вручную переходим на URL для загрузки корневого сертификата.Однако теперь необходимо автоматизировать его.Я ищу C # примеры того, как это сделать.Я хотел бы дать URL-адрес в качестве параметра, а затем программа должна взять на себя и открыть этот URL-адрес в фоновом режиме, скачать и установить запрошенный сертификат, без необходимости что-либо делать или знать, что произошло.Когда вы делаете это вручную, нет запроса на ввод имени пользователя и пароля, поэтому эта библиотека должна позволить мне сделать такой вызов.

Пожалуйста, дайте мне несколько советов о том, что делать, или несколько полезных статей, которые я могу прочитать, чтобы начать работать?

Ответы [ 3 ]

1 голос
/ 15 марта 2013

Вот пример того, как получить корневой сертификат от центра сертификации

// address - CA address
public static void InstallRootCert(string address)
{
    // getting root cert            
    ICertRequest2 objRequest = new CCertRequest();
    string rootCert = objRequest.GetCACertificate(0, address, 0);
    byte[] buffer = Encoding.UTF8.GetBytes(rootCert);

    // installing
    var store = new X509Store("Root", StoreLocation.CurrentUser);
    store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadWrite);
    var root = new X509Certificate2(buffer);
    store.Add(root);
}
0 голосов
/ 26 сентября 2011

Скачивайте с любым http-методом запроса, который вам нравится. Установите его как:

app.ClientCertificates.Add(
    new System.Security.Cryptography.X509Certificates.X509Certificate2(
        @"c:\Downloads\testcert.pfx", "password"));

Подробнее об управлении сертификатами см. Здесь: http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate2.aspx

0 голосов
/ 26 сентября 2011

Поскольку информация, которую вы предоставляете, является довольно общей, некоторые общие указания о том, как вы могли бы реализовать это:

Загрузка может быть осуществлена ​​через WebClient и / или HttpWebRequest.

Что касается установки, вы можете сделать это через X509Store вместе с StoreName.Root - подробности и пример источника см. http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.aspx

...