C# dotnet SslStream 信任库

标签 c# truststore sslstream

我正在开发 C# SSL 客户端。

这是单向证书验证。我的客户需要进行服务器证书验证。

我已将 RemoteCertificateValidationCallback 添加到 SslStream。

目前,我已经创建了根CA证书,并使用根CA证书为服务器颁发了证书。我曾经使用 openssl 来生成这些证书。

我在客户端的服务器证书的 CertificateValidationCallback 中收到 RemoteCertificateChainErrors。

我正在 Windows 10 上测试我的客户端。

为解决此问题,我已将根 CA 证书添加到受信任的根证书颁发机构

enter image description here

现在我没有看到 RemoteCertificateChainErrors。

但我无法找到配置自定义信任库的方法,就像我在 java 客户端 (jks) 中所做的那样。

我想将我的根 CA 添加到我自己的信任库中,并将其与密码一起传递到我的 C# 客户端。当客户端从服务器收到证书时,它应该查看该信任库中的根 CA 证书以验证远程证书。

有人可以帮忙吗?

最佳答案

在 Java 中,您可以创建自己的 keystore 。在 Windows 中,您只能使用已经存在的 keystore (自己的证书、受信任的根证书颁发机构……)

因此,在检查服务器证书时,您必须指定您的客户端应该查看哪个商店。

另外,看看这篇文章:Using X509 Certificate with file and key in C#

关于C# dotnet SslStream 信任库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63798167/

相关文章:

c# - 检查项目引用的分析器

c# - Kindle Fire 视频流式传输崩溃

java安全套接字无需身份验证?

c# - .NET SslStream 不工作

.net - 通过 SSLStream 发送数据时的数据包碎片

c# - 定义内联扩展方法

c# - C# 比较中的 JSON 反序列化

tomcat - 通过LDAP SSL的Active Directory-开发环境与Tomcat-Grails Web应用

java - 只接受某些证书

.net - APN 失败并显示 "Authentication failed because the remote party has closed the transport stream"