Можно ли использовать.NET X509Store для получения сертификатов из удаленных хранилищ Linux?

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

Обход серверов Windows работает как положено. Но я не уверен, что делать с магазинами Tomcat в (Ubuntu) Linux. Может ли объект X509Store ориентироваться на удаленные машины Linux? И как там отображаются концепции StoreName и StoreLocation? Как мне пройти аутентификацию? Я предполагаю, что он захочет, чтобы сессия SSH попыталась соединиться с магазинами. Да, я не знаю с чего начать.

using(var store = new X509Store($@"\\{serverName}\{storeName}", StoreLocation.LocalMachine))
{
    store.Open(OpenFlags.ReadOnly);
    foreach(var cert in store.Certificates)
    {
        var issuedTo = cert.GetNameInfo(X509NameType.SimpleName, false);

1 ответ

Решение

Нет. API X509Store в Linux пытается эмулировать поведение Windows для локального процесса, но у него нет удаленных возможностей.

В Windows реальная реализация X509Store - это API-интерфейсы CAPI CertStore*, которые имеют встроенную возможность взаимодействия между компьютерами (возможно, через WinRPC); но они принципиально часть ОС.

В Linux функциональность обеспечивается только библиотекой System.Security.Cryptography.X509Certificates, поэтому ничего не слушается удаленно.

В macOS, вероятно, ничего не слушают удаленно, но классы X509Store являются интерпретациями и проекциями API SecKeychain * и SecTrust * Security.framework, поэтому на более низком уровне может быть некоторый уровень удаленного взаимодействия.

Другие вопросы по тегам