嗨,我尝试使用c#在Windows中创建代理应用, 我创建了一个将代理设置更改为环回并从浏览器接收Web请求的应用程序。首先接受传入的套接字,然后在下一步中获取SSl流,尝试访问AuthenticateAsServer。对于身份验证需要X509Certificate,我尝试创建许多证书并使用它们,但是在调用身份验证功能时引发“握手由于意外的数据包格式而失败”异常。 删除SslStream并使用networkstream时,会收到https请求,但尝试向浏览器发送响应时,浏览器发送请求很多次,并显示包含“ TLS安全性...”的消息。请帮助我。
IPEndPoint ServerEndPoint = new IPEndPoint(ServerHostEntry.AddressList[0], 36900);
////Server2Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
////Server2Socket.Bind(ServerEndPoint);
////Server2Socket.Listen(100);
////Server2Socket.BeginAccept(AccepetSocketCallBack, ServerSocket);
ServerSocket = new TcpListener(ServerEndPoint);
ServerSocket.Start(100);
Running = true;
ServerSocket.BeginAcceptTcpClient(AccepetSocketCallBack, ServerSocket);
private void AccepetSocketCallBack(IAsyncResult ar)
{
if(Running)
{
//Socket E = Server2Socket.EndAccept(ar);
//byte[] Data = new byte[1024 * 100];
//E.Receive(Data, SocketFlags.None);
//string Str = Encoding.ASCII.GetString(Data);
//Server2Socket.BeginAccept(AccepetSocketCallBack, Server2Socket);
ClientClass NewClient = new ClientClass(MainWindow.ServerAddress, 32138, Clients.Count);
NewClient.ClientSocket = ServerSocket.EndAcceptTcpClient(ar);
NewClient.ClientSream = NewClient.ClientSocket.GetStream();
NewClient.InitialSocket();
//Clients.Add(NewClient);
ServerSocket.BeginAcceptTcpClient(AccepetSocketCallBack, ServerSocket);
}
}
public void InitialSocket()
{
try
{
X509Store store = new X509Store(StoreName.My , StoreLocation.LocalMachine);
store.Open(OpenFlags.MaxAllowed);
S = new SslStream(ClientSream, false);
S.AuthenticateAsServer(store.Certificates[0] , false , System.Security.Authentication.SslProtocols.Tls12 , true);
S.BeginRead(RecivedDataContiner, 0, RecivedDataContiner.Length, ReciveCallBack, S);
}
catch(Exception E)
{
ClientSream.BeginRead(RecivedDataContiner, 0, RecivedDataContiner.Length, ReciveCallBack, ClientSream);
}
//ClientSream.BeginRead(RecivedDataContiner,0, RecivedDataContiner.Length , ReciveCallBack, ClientSream);
}
我尝试使用许多证书,例如localhost由makecert.exe创建,IIS证书,我的网站ssl证书,x509Store和openssl等。但是任何时候都可能出现上述异常。请帮助。 我测试了MSDN Example,但还是一样。