Как установить корневой сертификат Fiddler в хранилище Machine Root

Как мы можем установить корневой сертификат Fiddler в корневом хранилище компьютера с помощью Fiddler Core? Мы можем сделать это с помощью certmgr, но было бы здорово сделать это с помощью FiddlerCore. Кажется, у него есть методы для тестирования и установки всего, кроме корневого хранилища машины :( !?

FiddlerCore имеет следующие методы:

  • Fiddler.CertMaker.rootCertExists() на "Определить, существует ли самозаверяющий корневой сертификат", если он возвращает false, мы можем вызвать Fiddler.CertMaker.createRootCert() для установки сертификат.

  • Fiddler.CertMaker.rootCertIsTrusted(), чтобы проверить, находится ли корневой сертификат Fiddler в корневом хранилище. если он возвращает false, мы можем вызвать Fiddler.CertMaker.trustRootCert(), чтобы доверять сертификату.

  • Fiddler.CertMaker.rootCertIsMachineTrusted() проверяет "Находится ли корневой сертификат Fiddler в корневом хранилище компьютера?", если он возвращает false ??? что мы делаем, чтобы решить это ???


person Tiago Andrade e Silva    schedule 29.10.2013    source источник


Ответы (1)


Эта тема хорошо освещена в книге Fiddler, которая является полезным справочником по программированию с помощью FiddlerCore.

Чтобы машина доверяла корневому каталогу, ваш код должен быть запущен от имени администратора и должен использовать API-интерфейсы .NET:

private static bool setMachineTrust(X509Certificate2 oRootCert)
{
  try
  {
    X509Store certStore = new X509Store(StoreName.Root, 
                                        StoreLocation.LocalMachine);
    certStore.Open(OpenFlags.ReadWrite);

    try
    {
      certStore.Add(oRootCert);
    }
    finally
    {
      certStore.Close();
    }
    return true;
  }
  catch (Exception eX) 
  {
     return false;
  }    

}

person EricLaw    schedule 29.10.2013
comment
Спасибо, Эрик. У меня есть книга (это здорово), и я должен был проверить ее, прежде чем спрашивать :) - person Tiago Andrade e Silva; 29.10.2013