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

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

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

这可能是什么原因造成的?

  • 证书尚未过期
  • 它似乎没有被撤销
  • 我看不到事件发生时的任何相关事件日志
  • 它发生在我的开发机器,测试环境和生产服务器上
  • 生产服务器不在域中,只是一个工作组(托管在 Rackspace 中)
  • 查询组策略(gpresult /h foo.html)未报告我被阻止信任第三方根 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();

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

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

答案1

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

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...]

事实证明,如果第三方根 CA 无法被 Windows 识别,那么它们可能会被删除:

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

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

答案2

我在安装证书时遇到了同样的问题AuthRoot

一旦我安装了它Root,一切都很好。

值得注意的是StoreName枚举的每个值的含义:

https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.storename?view=netcore-3.1

相关内容