SslStream AuthenticateAsClient在Ubuntu中失败

时间:2019-01-31 00:07:28

标签: c# .net-core ubuntu-18.04

我正在尝试连接到需要使用证书进行客户端身份验证的服务器。

我运行以下代码:

var tcpClient = new TcpClient("host", 443);
var sslStream = new SslStream(tcpClient.GetStream(), false,
                            new RemoteCertificateValidationCallback(ValidateServerCertificate),
                            new LocalCertificateSelectionCallback(SelectLocalCertificate));

X509Certificate certificate = new X509Certificate("pkcs12 file", "password");
X509CertificateCollection certificates = new X509CertificateCollection();
certificates.Add(certificate);

sslStream.AuthenticateAsClient("host", certificates, SslProtocols.Default, false);

SelectLocalCertificate返回适当的证书,并 ValidateServerCertificate始终返回true。

我正在使用.net core 2.1运行此代码,当我在Windows 10中运行此代码时,一切正常。 当我在Ubuntu 18.04中运行相同的代码时,出现异常并显示错误消息

“身份验证失败,因为远程方已关闭传输流”

我尝试了几件事。我已经更改了SslProtocols参数的值。 我试图运行更改ServicePointManager.SecurityProtocol的代码 没有成功。 在Windows 10上,我的代码工作正常,但在Ubuntu 18.04中,我遇到了先前的错误。

0 个答案:

没有答案