受信任的根证书被自动从存储中删除

dan*_*dan 9 certificate windows-server-2008-r2 certificate-authority

我有一个受信任的第三方根证书。我将此安装到 Windows Server 2008 中的“受信任的根证书颁发机构”证书存储中,但它在未知时间从证书存储中消失。

什么可能导致这种情况?

  • 证书未过期
  • 它似乎没有被撤销
  • 我看不到事件发生前后的任何相关事件日志
  • 它发生在我的开发机器、测试环境和生产服务器上
  • 生产服务器不在域中,只是一个工作组(托管在 Rackspace 中)
  • 查询组策略 (gpresult /h foo.html) 未报告我无法信任第 3 方根 CA

我在 ac# 命令行应用程序中使用以下代码来安装证书:

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();
Run Code Online (Sandbox Code Playgroud)

每次我发布对应用程序的更改时,证书安装代码都会运行。我看不出这有什么危害,但值得一提。

我安装证书的方式可能有问题。首选的安装方式是什么?

dan*_*dan 10

在应用程序事件日志中进行更彻底的挖掘,出现了以下条目:

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...]
Run Code Online (Sandbox Code Playgroud)

事实证明,如果 Windows 无法识别第 3 方根 CA,它们可以被删除:

通常,当您使用安全网站或发送和接收安全电子邮件时,会使用证书。任何人都可以颁发证书,但要使交易尽可能安全,证书必须由受信任的证书颁发机构 (CA) 颁发。Microsoft 在 Windows XP 以及它认为受信任的公司和组织的其他产品中包含了一个列表。

http://toastergremlin.com/?p=144