如何找出数字证书出了什么问题?
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) 完成的。
这是 Windows 的 white paper。
使用 .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);
- DigiCert 提供了一个tool,这很有用
有没有办法查看 Windows 中数字证书的问题到底出在哪里?
我已经从 CA 购买了代码签名证书,我正在使用它来签署 ClickOnce 应用程序(使用 mage.exe)并且签名过程顺利。 但是,当客户端安装我的 ClickOnce 应用程序时,安装程序会警告用户发布者未经过验证。我让这个与自签名证书一起使用。 我想找出CA的这个证书到底有什么问题。 有什么方法可以 "debug" 证书验证过程(据我所知,该过程是 Authenticode)。
验证码只是签名的类型。
您是否双击了用于创建签名的证书。 Windows Explorer 的 Shell 扩展可能会告诉你哪里出了问题 - 例如不受信任(root/issuer 不在受信任的证书颁发机构商店中)、已过期、已撤销...
深入挖掘(CRL 和 OCSP): 吊销检查是根据证书吊销列表 (CRL) 和在线证书状态协议 (OCSP) 完成的。
这是 Windows 的 white paper。
使用 .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);
- DigiCert 提供了一个tool,这很有用