我正在尝试为ed建立代理服务器。目的。
有一些步骤:
我的问题是-每个https页面中的浏览器打印错误“ SSL_ERROR_RX_MALFORMED_ALERT”。 这种方法正确吗?也许是最后一个...未安装证书。
int UnitN = SearchById_n(IncomPort);
if (UnitN != -1)
{//Old connection
Console.WriteLine("Old handshake");
NetworkStream requestStream = SocketPool[UnitN].tcpClient.GetStream();
requestStream.Write(Data, 0, Data.Length);
int received = 0;
int part = 0;
byte[] buffer = new byte[buffer_size];
do
{
part = 0;
part = requestStream.Read(buffer, received, buffer_size - received);
received += part;
}
while (requestStream.DataAvailable);
Array.Resize(ref buffer, received);
return buffer;
}
else
{//New Connection
Head ReqHead = new Head(Srequest);
IPHostEntry ipHostInfo = Dns.GetHostEntry(ReqHead.host);
IPAddress ipAddress = ipHostInfo.AddressList[0];
//IPEndPoint remoteEP = new IPEndPoint(ipAddress, ReqHead.port);
Console.WriteLine("New handshake");
SslStream sslStream = null;
NetworkStream requestStream = null;
TcpClient requestClient = new TcpClient();
requestClient.Connect(ReqHead.host, ReqHead.port);
requestStream = requestClient.GetStream();
sslStream = new SslStream(requestStream, false, (x1, x2, x3, x4) => true);
sslStream.AuthenticateAsClient(ReqHead.host);
lock (locker)
SocketPool.Add(new SocketPoolUnit()
{
tcpClient = requestClient,
netStream = requestStream,
sslStream = sslStream,
Id = IncomPort,
TTL = 999
});
string sslResponse = "HTTP/1.0 200 Connection established\r\n\r\n";
resp = Encoding.UTF8.GetBytes(sslResponse);
return resp;
}