【问题标题】:Getting "The network path was not found" when trying to open remote cert store尝试打开远程证书存储时出现“找不到网络路径”
【发布时间】:2021-07-02 22:48:46
【问题描述】:

我正在尝试从远程计算机的证书存储中获取未过期证书的列表。对于某些机器,这可以正常工作,但对于其他机器,我收到以下错误:

Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: The network path was not found.
at Internal.Cryptography.Pal.StorePal.FromSystemStore(String storeName, StoreLocation storeLocation, OpenFlags openFlags)
at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags)
at GetCertificates(String server)

这是这段代码的来源:

var store = new X509Store($@"\\{server}\My", StoreLocation.LocalMachine);
var certList = new List<X509Certificate2>();
try
{
     store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);
     certList = store.Certificates.Cast<X509Certificate2>()
                     .Where(x => x.NotBefore < DateTime.Now &&
                                 DateTime.Now < x.NotAfter).ToList();
}
catch (Exception e)
{
     throw;
}
finally
{
     store.Close();
}

任何想法为什么这可能发生在某些机器和/或可能的解决方法/解决方案上?

谢谢

【问题讨论】:

  • 根据constructor docnew X509Store(this is a name, this is a location type)。但您的第一个实际参数是共享文件夹路径,而不是名称。
  • @LeiY,我基于此解决方案的代码,建议可以使用远程路径/UNC:stackoverflow.com/a/30945625/2048464

标签: c# .net-core x509certificate2


【解决方案1】:

根据给出的异常,这是由于网络路径不正确或有效。检查您是否可以从托管上述代码的服务器访问远程服务器。

【讨论】:

  • 感谢您的回复,但我已验证网络路径/服务器是可访问的。我可以远程桌面进入机器并使用相同的凭据通过 PowerShell 和 mmc 启动他们的商店。
  • 您是否尝试使用您的 iis 应用程序池帐户访问它们?
  • 是的,我使用的是同一个帐户。我想我可能已经找到了解决办法。感谢您的宝贵时间!
【解决方案2】:

找到了解决办法。我以管理员身份运行我的应用程序,现在它似乎能够解析网络路径。我猜我们对这些服务器有一些配置/权限设置,只允许“管理员”远程访问证书。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2014-07-07
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2021-10-31
    相关资源
    最近更新 更多