c# - .Net 中使用套接字通信的点对点相互 SSL 身份验证

标签 c# sockets ssl x509certificate2

我必须为点对点通信而不是本地主机进行相互 SSL 身份验证。我正在使用 Microsoft.Net 套接字通信类以及具有 ValidateServerCertificate 和 ValidateClientCertificate 回调的 SslStream 类来执行此操作。

为此,我创建了自签名证书,其中包括一个根证书、一个服务器证书和一个客户端证书。下面是我用于生成相同证书的命令。

->makecert.exe -n "CN=abc.com"-r -pe -a sha512 -len 4096 -cy authority -sv RootCert.pvk RootCert.cer ->pvk2pfx -pvk RootCert.pvk -spc RootCert.cer -pfx RootCert.pfx -po test123

服务器 ->makecert.exe -pe -n "CN=abc.com"-a sha512 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -ic RootCert.cer -iv RootCert.pvk -sp "Microsoft RSA SChannel Cryptographic提供商”-sy 12 -sv ServerCert.pvk ServerCert.cer ->pvk2pfx -pvk ServerCert.pvk -spc ServerCert.cer -pfx ServerCert.pfx -po test123

客户端 ->makecert.exe -pe -n "CN=abc.com"-a sha512 -sky exchange -eku 1.3.6.1.5.5.7.3.2 -ic RootCert.cer -iv RootCert.pvk -sp "Microsoft RSA SChannel Cryptographic提供商”-sy 12 -sv ClientCert.pvk ClientCert.cer ->pvk2pfx -pvk ClientCert.pvk -spc ClientCert.cer -pfx ClientCert.pfx -po test123

生成所有必需的证书后,我将它们添加到 mmc 控制台,正如您在上面所解释的那样。 为了检查相互身份验证,我正在使用 X509Certificate2 类,在 SslPolicyErrors 中执行此操作时,我遇到了错误说明 RemoteCertificate Name Mismatch

我知道这是一个远景,但任何人都可以给我任何相同的指示。

最佳答案

大家好,如果您仍然遇到与我发布的问题相同的问题,请点击以下链接。 我们的团队致力于此,我们找到了以下解决方案,希望对您有所帮助。

SSL mutual authentication Certificate issue

关于c# - .Net 中使用套接字通信的点对点相互 SSL 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26522667/

相关文章:

sockets - 使用 Data.Binary 编码二进制编码的大小

java - 如何在不重新启动的情况下更新 Spring Data Geode 连接中的 keystore (SSLContext)?

当 send_mail 在 Apache2.4 后面时,Django 1.10 SSLv2_method 导入错误

c# - 如何使用 PowerShell 远程处理从 C# 向 Active Directory 用户添加图像?

c# - 最大化系统托盘中的应用程序?

c# - 具有精确表达式的起订量<Func<TEntity, bool>>

c# - 复制内存中的 SQLite 数据库,使单元测试更快

c++ - 示例 Web 服务器和字节序

c++ - 使用 C++ 将 UDP 数据包存储在结构中

ssl - ca-certificates on a raspberry pi 3 - update-ca-certificates 图和错误