Получение «Сетевой путь не найден» при попытке открыть удаленное хранилище сертификатов

avatar
sounami
1 июля 2021 в 21:25
303
2
1

Я пытаюсь получить список неистекших сертификатов из хранилищ сертификатов удаленных машин. Для некоторых машин это работает нормально, но для других я получаю следующую ошибку:

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();
}

Есть идеи, почему это может происходить на некоторых машинах и/или возможные обходные пути/решения?

Спасибо

Источник
Lei Yang
2 июля 2021 в 01:51
0

согласно документ конструктора, new X509Store(this is a name, this is a location type). но ваш первый фактический параметр - это путь к общей папке, а не имя.

sounami
2 июля 2021 в 13:22
0

@LeiY, я основал код на основе этого решения, которое предполагает использование удаленных путей/UNC: coderhelper.com/a/30945625/2048464

Ответы (2)

avatar
sounami
2 июля 2021 в 14:48
0

Нашел решение. Я запустил приложение от имени администратора, и теперь оно, похоже, может разрешать сетевые пути. Я предполагаю, что у нас есть некоторые настройки конфигурации/разрешения для этих серверов, которые позволяют только «администраторам» получать удаленный доступ к сертификатам.

avatar
Darshani Jayasekara
2 июля 2021 в 01:45
1

Исходя из данного исключения, оно связано с неправильным или допустимым сетевым путем. Проверьте, можете ли вы получить доступ к удаленному серверу с вашего сервера, на котором вы разместили указанный выше код.

sounami
2 июля 2021 в 13:25
0

Спасибо за ответ, но я убедился, что сетевой путь/сервер доступен. Я могу подключить удаленный рабочий стол к машинам и открыть их магазин через PowerShell и mmc, используя те же учетные данные.

Darshani Jayasekara
2 июля 2021 в 13:34
0

Вы пытались получить к ним доступ, используя свою учетную запись пула приложений iis?

sounami
2 июля 2021 в 14:43
0

Да, я использовал тот же аккаунт. Я думаю, что, возможно, нашел решение. Спасибо за ваше время!