У меня есть корневой сертификат доверенной третьей стороны. Я устанавливаю это на хранилище сертификатов 'Доверенных корневых центров сертификации' в Windows Server 2008, но это исчезает из хранилища сертификатов в неизвестные времена.
Что могло вызывать это?
Я использую следующий код в c# приложении командной строки для установки сертификата:
X509Certificate2 certificate = new X509Certificate2("trusted-root-cert.cer");
X509Store store = new X509Store(StoreName.AuthRoot, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);
store.Close();
Код установки сертификата, оказывается, работает каждый раз, когда я выпускаю изменение в своем приложении. Я не вижу, как это могло делать что-то плохое, но это стоит упомянуть.
Могло бы быть что-то не так о способе, которым я устанавливаю сертификат. Каков предпочтительный способ установить?
При более тщательном поиске в журнале событий приложений появилась эта запись:
Log Name: Application
Source: Microsoft-Windows-CAPI2
Date: 24/10/2014 12:49:10
Event ID: 4108
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: [redacted]
Description:
Successful auto delete of third-party root certificate:: Subject [...redacted...]
Оказывается, что сторонние корневые ЦС могут быть удалены Windows, если они не распознаются:
Обычно , сертификат используется при использовании защищенного веб-сайта или при отправке и получении защищенной электронной почты. Кто угодно может выдавать сертификаты, но чтобы транзакции были максимально безопасными, сертификаты должны выдаваться доверенным центром сертификации (CA). Microsoft включила в Windows XP и другие продукты список компаний и организаций, которые она считает надежными.
У меня была такая же проблема при установке сертификата в AuthRoot
.
После того как я установил его в Root
, все было в порядке.
Интересно отметить, что означает каждое значение перечисления StoreName
: