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

远程方已关闭传输流,身份验证失败. 服务器模式 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();
            }
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题