如何找出数字证书出了什么问题?

How to find out what is wrong with digital certificate?

有没有办法查看 Windows 中数字证书的问题到底出在哪里?

我已经从 CA 购买了代码签名证书,我正在使用它来签署 ClickOnce 应用程序(使用 mage.exe)并且签名过程顺利。 但是,当客户端安装我的 ClickOnce 应用程序时,安装程​​序会警告用户发布者未经过验证。我让这个与自签名证书一起使用。 我想找出CA的这个证书到底​​有什么问题。 有什么方法可以 "debug" 证书验证过程(据我所知,该过程是 Authenticode)。

验证码只是签名的类型

您是否双击了用于创建签名的证书。 Windows Explorer 的 Shell 扩展可能会告诉你哪里出了问题 - 例如不受信任(root/issuer 不在受信任的证书颁发机构商店中)、已过期、已撤销...

深入挖掘(CRL 和 OCSP): 吊销检查是根据证书吊销列表 (CRL) 和在线证书状态协议 (OCSP) 完成的。

  1. 这是 Windows 的 white paper

  2. 使用 .NET (C#)

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.Build (certificate);
Console.WriteLine ("Chain Information");
Console.WriteLine ("Chain revocation flag: {0}", ch.ChainPolicy.RevocationFlag);
Console.WriteLine ("Chain revocation mode: {0}", ch.ChainPolicy.RevocationMode);
Console.WriteLine ("Chain verification flag: {0}", ch.ChainPolicy.VerificationFlags);
Console.WriteLine ("Chain verification time: {0}", ch.ChainPolicy.VerificationTime);
Console.WriteLine ("Chain status length: {0}", ch.ChainStatus.Length);
Console.WriteLine ("Chain application policy count: {0}", ch.ChainPolicy.ApplicationPolicy.Count);
Console.WriteLine ("Chain certificate policy count: {0} {1}", ch.ChainPolicy.CertificatePolicy.Count, Environment.NewLine);

来源:https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.x509chain.build?view=netframework-4.8

  1. DigiCert 提供了一个tool,这很有用