繁体   English   中英

了解服务器上证书的检索

[英]Understanding the retrival of Certificates on a server

我制作了一个简单的控制台应用程序,该应用程序遍历机器上的所有证书

private static X509Certificate2 GetSpecifiedCertificate(StoreName storeName, StoreLocation storeLocation)
{
    X509Store store = new X509Store(storeName, storeLocation);
    store.Open(OpenFlags.ReadOnly);

    X509Certificate2Collection certs = store.Certificates;


    if (certs.Count > 0)
    {
        Console.WriteLine(string.Format("found {0} certficates", certs.Count));

        for (int i = 0; i < certs.Count; i++)
        {
            X509Certificate2 cert = certs[i];
            Console.WriteLine(cert.Thumbprint);
        }
    }
    else
        Console.WriteLine("found no certficates at all");

    return null;
}

使用StoreName.CertificateAuthorityStoreLocation.LocalMachine作为变量,在Windows Server 2008R2上,即使安装了更多证书,我也只获得3个证书

控制台应用程序输出: 在此处输入图片说明

CertificateAuthority存储位置下安装的证书 在此处输入图片说明

我如何得到失踪者?

我特别想检索一个Apple证书来签署文件,但是无论我如何安装公共证书,我都无法从存储循环中检索它。

我是否总是需要重启机器? 是否有特殊的技巧来获取它们?

您是如何打开证书窗口的? 我认为您正在查看的是帐户而不是计算机帐户下的证书。 但是,该代码从计算机帐户查询证书,该计算机帐户通常安装的证书少于您的帐户。

要打开计算机帐户的证书窗口,

  1. 在命令提示符下执行mmc。
  2. 档案| 添加/删除管理单元。
  3. 添加证书。
  4. 选择计算机帐户。

通常,它应该与加载“ CertificateAuthority”存储并从那里获取一起工作,所以有点奇怪。

但是,根据MSDN: http : //msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename.aspx

应该可以这样加载Apple证书:

var appleCert = new  X509Certificate2("appleRoot.cer");

只是为了让您入门。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM