0

我在带有单声道服务的 Ubuntu 14 上运行我的 Windows 服务。

当我的服务尝试使用 SSL 连接时,它会抛出以下异常:

The authentication or decryption has failed.
at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0

我尝试了以下帖子中的解决方案并尝试忽略异常,但它们都对我的情况没有帮助:

Mono https webrequest 失败并显示“身份验证或解密失败”

c# - “认证或解密失败。” 在单声道中使用 twitterizer 时出错

认证或解密失败。

使用 SSL 向 GMail 发送邮件时身份验证或解密失败

编辑:这是我的连接代码:

 ServicePointManager.ServerCertificateValidationCallback += CertificateValidationCallBack;
 csGlobal.m_tcp_client = new TcpClient(csGlobal.m_hostname, csGlobal.m_port);

 var ssl_stream = new SslStream(csGlobal.m_tcp_client.GetStream(), false, (sender, certificate, chain, ssl_policy_errors) => ssl_policy_errors == SslPolicyErrors.None);

 var ssl_reader = new StreamReader(csGlobal.m_tcp_client.GetStream());
 ssl_stream.AuthenticateAsClient(csGlobal.m_hostname);
 ssl_stream.ReadTimeout = (int)csGlobal.READ_TIMEOUT.TotalMilliseconds;

 csGlobal.m_ssl_stream = ssl_stream;

csGlobal是一个包含所需变量的全局类。

我无法连接到服务器。但是当我在我的 Windows 上启动这个服务器时,它工作得很好。它应该以XML字节形式发送和接收消息。

你有什么建议?

4

1 回答 1

1

尝试替换这一行:

 var ssl_stream = new SslStream(csGlobal.m_tcp_client.GetStream(), false, (sender, certificate, chain, ssl_policy_errors) => ssl_policy_errors == SslPolicyErrors.None);

有了这个:

 var ssl_stream = new SslStream(csGlobal.m_tcp_client.GetStream());
于 2014-11-04T05:55:32.623 回答