Управление сертификатами сервера HTTPS изнутри программы? - PullRequest
1 голос
/ 13 декабря 2010

Я хочу выполнить следующие действия изнутри кода .NET:

  1. Создать в магазине самоподписанный сертификат, получить его отпечаток;
  2. Импорт существующего файла сертификата в хранилище. Аналогично, получите отпечаток большого пальца;
  3. Настройте порт HTTPS для использования этого сертификата согласно «netsh http add sslcert». Я мог бы просто запустить эту консольную команду из моей программы, но было бы неплохо, если бы был лучший способ.

Кстати, пункт №3 - причина, по которой мне нужны отпечатки пальцев в пунктах № 1 и № 2. Это возможно?

1 Ответ

2 голосов
/ 13 декабря 2010

Взгляните на пространство имен System.Security.Cryptography.X509Certificates.

В частности, класс X509Store будет выполнять по крайней мере одну из вещей, на которые вы ссылаетесь: Импортировать существующий сертификат в хранилище. например,

X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
try
{
 store.Open(OpenFlags.ReadWrite);
 store.Add(
     new X509Certificate2(@"Certificates\MyCertificate.pfx", "password"));
}
finally
{
 store.Close();
}

Смотри также:


В одной из ваших других частей, создавая сертификат, я нашел это: makecert.cs: инструмент клонирования makecert ... если вы не собираетесь вызывать консольный инструмент, такой как makecert.exe вы, вероятно, в конечном итоге будете реализовывать что-то похожее на это.

...