繁体   English   中英

在 Linux 上运行的证书验证 .net 标准 2.1

[英]Certificate validation .net standard 2.1 running on linux

我正在研究.net standard 2.1上的应用程序。 对于 http 客户端,我使用的是HttpWebRequest ,在某一时刻,我们必须使用回调ServicePointManager.ServerCertificateValidationCallback属性进行自定义证书验证。 在 Windows 操作系统上,我们将证书添加到 CA 存储中,并且通过在回调public delegate bool RemoteCertificateValidationCallback(object sender, X509Certificate? certificate, X509Chain? chain, SslPolicyErrors sslPolicyErrors);证书链X509Chain来正常进行验证。 . 我的第一个问题是我应该在 linux 上的哪里添加证书以便验证有效? 除此之外,是否可以通过提供路径来添加证书而不安装证书?

我的第一个问题是我应该在 linux 上的哪里添加证书以便验证有效?

要信任 Linux 上的证书,您可以将其添加到系统信任集合(说明取决于您的发行版),或者您可以将其添加到CurrentUser\Root X509Store (由 .NET 管理并且不会影响系统工具,例如curl )。

除此之外,是否可以通过提供路径来添加证书而不安装证书?

.NET 5 向 X509Chain 添加了一项功能,该功能允许为特定链构建指定一组受信任的根存储。 如果您使用的是 .NET 5+,则可以重新配置提供的 X509Chain 实例以将其切换到自定义信任并以这种方式指定您的证书。 (对于 .NET 7,我们希望更容易将其指定为 SslStream/HttpClient 的输入,这样您就不必等到回调并丢弃第一个链构建。)

我正在开发 .net 标准 2.1 上的应用程序。

FWIW:您不能拥有 .NET Standard 应用程序,因为 .NET Standard 是一组类型和成员,没有关联的运行时。 .NET Core 3.0+(包括 .NET 5+),显然一些 Xamarin 和 Unity 工作负载实现了 .NET Standard 2.1 ......您的应用程序将适用于其中之一( https://docs.microsoft.com/en-我们/dotnet/standard/net-standard?tabs=net-standard-2-1 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM