行货优盘 2016-12-01 08:04 采纳率: 0%
浏览 8404

远程方已关闭传输流,身份验证失败. 服务器模式 SSL 必须使用具有关联私钥的证书.

  我用VS命令行工具执行makecert创建了一个证书,然后创建了两个winform,一个做服务端一个做客户端,可以互相通讯,然后我把服务端的源码放到一个Windows服务中,在系统中安装该服务,在用那个客户端访问监听的端口,此时出现错误
  客户端显示的信息是由于远程方已关闭传输流,身份验证失败。当调试Windows服务时,服务捕获到异常信息,信息内容为:服务器模式 SSL 必须使用具有关联私钥的证书。
   有人知道什么原因吗?怎么解决
  • 写回答

3条回答 默认 最新

  • 行货优盘 2016-12-01 08:07
    关注

    附源码
    服务器端源码如下:
    ///
    /// 执行服务器监听
    ///
    public static void RunServer()
    {
    // 建立X509凭证
    ServerCertificate = new X509Certificate(Certificate, "123456");
    // 监听任何IP Address来的讯息
    listener = new TcpListener(System.Net.IPAddress.Any, 17170);
    // 开启监听
    listener.Start();

            while (IsRun)
            {
                TcpClient client = listener.AcceptTcpClient();
    
                if (!IsRun)
                {
                    listener.Stop();
                    client.Close();
                }
                else
                {
                    ProcessClient(client);
                }
            }
        }
    
                /// <summary>
        /// 接收客户端讯息处理并回复
        /// </summary>
        /// <param name="pClient"></param>
        private static void ProcessClient(TcpClient pClient)
        {
            SslStream sslStream = new SslStream(pClient.GetStream(), true);
    
            try
            {
                sslStream.AuthenticateAsServer(ServerCertificate, true, SslProtocols.Tls, true);
    
                sslStream.ReadTimeout = 5000;
                sslStream.WriteTimeout = 5000;
    
                string messageData = ReadMessage(sslStream);
    
                byte[] message = Encoding.UTF8.GetBytes(string.Format("服务器已接收此: {0} 讯息<EOF>", messageData));
    
                sslStream.Write(message);
            }
            catch (Exception e)
            {
                sslStream.Close();
                pClient.Close();
                return;
            }
            finally
            {
                sslStream.Close();
                pClient.Close();
            }
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料