我有一个受信任的第三方根证书。我将其安装到 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 和其他产品中列出了它认为是受信任的颁发机构的公司和组织。
答案2
我在安装证书时遇到了同样的问题AuthRoot
。
一旦我安装了它Root
,一切都很好。
值得注意的是StoreName
枚举的每个值的含义: