SSL相互认证错误和问题

本文关键字:问题 错误 认证 SSL | 更新日期: 2023-09-27 17:50:44

我正在尝试与服务器相互验证。

X509Certificate2 certificate = new X509Certificate2(@"path", "passwd");
X509Certificate2Collection certificateCollection = new X509Certificate2Collection();
certificateCollection.Add(certificate);
TcpClient tcpClient = new TcpClient();
SslStream sslStream;
tcpClient.Connect(ip, port);
sslStream = new SslStream(tcpClient.GetStream());
try
{
    sslStream.AuthenticateAsClient(hostname, collection, SslProtocols.Tls, false);
}
catch (Exception e)
{
    string s = e.Message;
}

客户端抛出异常,消息为" a Call to SSPI Failed, see inner Exception "。innerexception是一个System.ComponentModel。Win32Exception with the Message "收到的消息出乎意料或格式错误。"

问:客户端如何认证服务器,仅仅基于它的CN ?(提供主机名)不也需要服务器证书吗?

Q:在加载客户端证书时,我是否应该提供一个包含客户端证书和私钥的。p12文件?

SSL相互认证错误和问题

Q1:它也需要服务器证书,除非配置了X5.09以外的另一个身份验证。

Q2:是的,您需要一个证书和访问私钥的权限。如果它们包含在pkcs# 12中,则取决于实现,但pkcs# 12格式对于软件中的实现是正常的。