可以使用.NET的X509Store从远程Linux商店获取证书吗?

时间:2018-05-22 19:51:55

标签: c# linux ubuntu .net-core x509certificate2

我正在编写服务以定期遍历生产中远程服务器上的证书存储,以便跟踪使用的证书,在哪里及其到期日期,以防某些服务未按要求更新。

遍历Windows服务器按预期工作。但我不知道如何处理(Ubuntu)linux上的Tomcat商店。 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 个答案:

答案 0 :(得分:1)

没有。 Linux上的X509Store API尝试将Windows行为模拟为本地进程,但它没有远程功能。

在Windows上,X509Store的真正实现是CAPI CertStore * API,它具有内在的跨机器通信功能(可能通过WinRPC);但它们基本上是操作系统的一部分。

在Linux上,该功能仅由System.Security.Cryptography.X509Certificates库提供,因此没有任何东西可以远程监听。

在macOS上可能没有远程监听,但X509Store类是Security.framework的SecKeychain *和SecTrust * API的解释和预测,因此在较低级别可能存在某种程度的远程交互。