В этом проблема.C# proxy ssl/tls passthrough без сертификата
У меня есть запрос https. Запрос отправляется как запрос SSL/TLS (не CONNECT ...., который поступает из браузера с настройкой прокси-сервера).
Мне нужно написать прокси-сервер в C#, который блокирует определенный запрос https://foo.com/foo.htm, но позволяет через https://foo.com/anything_else.htm.
я могу сделать это штраф создание атаки MITM с новым сертификатом и т.д. и т.п.
Но Im теперь интересно, если есть простой способ сделать это Im недостающее без использования атаки MITM, как у меня нет необходимости в расшифровать данные. Мне нужно знать только URI/файл.
Я могу просто просто передавать потоки, но я хочу знать, есть ли простой способ передать потоки после того, как я прочитал URI и файл.
Я могу написать какой-нибудь причудливый код, чтобы разделить запрос tcp, и это то, что мне может понадобиться.
У кого-нибудь есть идеи, прежде чем я пойду по этому пути. Помните, что запрос CONNECT отсутствует. Просто установите SSL/TLS.
Основная причина этого заключается в том, что только делает вещи проще не создавать собственные сертификаты и т.д.
Может быть, его даже можно использовать реальный сертификат как-то с конца сервера, как мне не нужно, чтобы расшифровать любой из NO данные заголовка.
Я нахожу, что сетевая сторона C# не очень хорошо документирована и немного повсюду.
Просто для справки я могу получить URI из TcpClient с помощью:
IPEndPoint ipEndPoint = (IPEndPoint)clientTcpClient.Client.RemoteEndPoint;
IPAddress ipAddress = ipEndPoint.Address;
// Get the hostname.
IPHostEntry ipHostEntry = Dns.GetHostEntry(ipAddress);
String hostName = ipHostEntry.HostName;
// Get the port.
Int32 port = ipEndPoint.Port;
Но не запрашиваемая страница.