c# - .NET 的 X509Store 能否用于从远程 Linux 商店获取证书?

标签 c# linux ubuntu .net-core x509certificate2

我正在编写一项服务,以定期遍历生产中远程服务器上的证书存储,目的是跟踪使用的证书、位置和到期日期,以防某些证书未按要求更新。

遍历 Windows 服务器按预期工作。但我不确定如何处理 (Ubuntu) linux 上的 Tomcat 商店。 X509Store 对象是否具有针对远程 Linux 机器的能力? StoreName 和 StoreLocation 概念如何映射到那里?我如何进行身份验证?我假设它需要一个 SSH session 来尝试连接到商店。是的,我不知道从哪里开始。

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

最佳答案

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

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

在 Linux 上,该功能仅由 System.Security.Cryptography.X509Certificates 库提供,因此根本无法远程监听。

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

关于c# - .NET 的 X509Store 能否用于从远程 Linux 商店获取证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50475508/

相关文章:

c - pthread_join() 混合线程输出

python - pip install py-find-1st 在 ubuntu20 和 centos 上使用 python3.9 失败

c# - 共享接口(interface)的数据绑定(bind)错误

c# - GridView 问题

c - 无法从 C 中的其他模块访问 linux 中共享库的自定义全局函数

linux - 使用 'ls -F'时不同指标的含义

c# - 从 XML 文件推断出的 XmlSchema - 如何遍历 XSD 中的所有元素?

c# - 如何强制 XmlSerializer 将元素序列化为编译类型的属性?

linux - 增加 AWS EC2 实例中 Beanstalkd 的最大打开文件数

python - Ubuntu mpi4py 无法编译