gpt4 book ai didi

c# - Linux 上的 .NET 核心 X509Store

转载 作者:IT王子 更新时间:2023-10-29 00:37:38 27 4
gpt4 key购买 nike

使用 .NET Core 2 X509Store 时,linux 中的证书文件位于何处?

在 Windows 上,可以从管理控制台 certlm.msc 或在 powershell 中使用 New-SelfSignedCertificate 访问证书。使用 .NET API,可以在 Windows 和 Linux 上通过类似的方式添加证书

using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser))
{
store.Open(OpenFlags.ReadWrite);
var cert = new X509Certificate2("cert.pfx", "1234");
store.Add(cert);
}

可以通过 X509Store.Certificates.Find() 访问。

但是文件存储在哪里以及如何通过 linux 工具添加它们?例如系统管理员将添加证书,而应用程序将只读取它们。

最佳答案

@mbican 的回答是正确的。证书放在

~/.dotnet/corefx/cryptography/x509stores/

我不相信这个没有上下文的单行答案,也不明白他是怎么到那里的。这就是为什么我想分享我的发现,作为所有 future 遇到相同问题的访问者的答案。

  1. 使用 pfx 证书文件,您不必将其转换为 pem 或 crt 或其他东西

  2. 用dotnet存储证书,这样就可以看到文件放在哪里了。一点 C# 命令行:

    using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser, OpenFlags.ReadWrite))
    {
    store.Add(new X509Certificate2(
    "./thePathToTheCert.pfx", "passwordOfTheCert",
    X509KeyStorageFlags.PersistKeySet));
    }

    这创建了文件夹 ~/.dotnet/corefx/cryptography/x509stores/并将证书放入其中。~/.dotnet/corefx/cryptography/x509stores/my/ThumbPrintOfTheCertificate.pfx

    提示:我们以前在 Windows 上使用 StoreLocation.LocalMachine,但是当我们在 linux 上运行时,没有 LocalMachine 存储,所以我们切换到 StoreLocation.CurrentUser。如果您尝试使用 LocalMachine,您将收到此错误:Unix LocalMachine X509Stores 对所有用户都是只读的。

希望这对某人有帮助。

关于c# - Linux 上的 .NET 核心 X509Store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com