Писал код для редиректа в браузере, но браузеры выдают такую ошибку, хотя я даже делал валидацию сертификата в коде вот код: public static ProxyServer proxyServer = new ProxyServer(); public static void Start() { //proxyServer.CertificateManager.TrustRootCertificate(true); proxyServer.CertificateManager.CertificateEngine = CertificateEngine.BouncyCastle; var endpoint = new ExplicitProxyEndPoint(System.Net.IPAddress.Any, 8080, true); proxyServer.AddEndPoint(endpoint); proxyServer.ServerCertificateValidationCallback += OnCertificateValidation; proxyServer.BeforeRequest += OnRequest; //proxyServer.ClientCertificateSelectionCallback -= OnCertificateSelection; proxyServer.Start(); Console.WriteLine("СЕРВЕР ЗАПУСТИЛИ!"); } public static void Stop() { proxyServer.BeforeRequest -= OnRequest; proxyServer.Stop(); Console.WriteLine("СТОПАНУЛ СЕРВАК!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); } private static async Task OnRequest(object sender, SessionEventArgs e) { Console.WriteLine("Зашли в редирект"); Console.WriteLine(e.HttpClient.Request.RequestUri.Host.ToString()); var host = e.HttpClient.Request.RequestUri.Host.ToLower(); var host_ip = e.HttpClient.Request.RequestUriString.ToLower(); Console.WriteLine(host); Console.WriteLine(host_ip); if (e.HttpClient.Request.RequestUri.Host.ToString().Contains("vk.com")) { Console.WriteLine("Редиректаем на ЮТТТТТТТТТТТТТТТТТТТТТТТТТТТТТ"); e.Redirect("https://youtube.com/"); Console.WriteLine("РЕДИРЕКТНУЛИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИ"); } } //static extern IntPtr GetForegroundWindow(); private static Task OnCertificateValidation(object sender, CertificateValidationEventArgs e) { // игнорирование некоторых ошибок SSL-сертификата if (e.SslPolicyErrors == System.Net.Security.SslPolicyErrors.None) { e.IsValid = true; } if (e.SslPolicyErrors == System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors) { foreach (X509ChainStatus chainStatus in e.Chain.ChainStatus) { if (chainStatus.Status != X509ChainStatusFlags.RevocationStatusUnknown && chainStatus.Status != X509ChainStatusFlags.NoError) { e.IsValid = false; } } e.IsValid = true; } //return false; return Task.CompletedTask; } Код public static ProxyServer proxyServer = new ProxyServer(); public static void Start() { //proxyServer.CertificateManager.TrustRootCertificate(true); proxyServer.CertificateManager.CertificateEngine = CertificateEngine.BouncyCastle; var endpoint = new ExplicitProxyEndPoint(System.Net.IPAddress.Any, 8080, true); proxyServer.AddEndPoint(endpoint); proxyServer.ServerCertificateValidationCallback += OnCertificateValidation; proxyServer.BeforeRequest += OnRequest; //proxyServer.ClientCertificateSelectionCallback -= OnCertificateSelection; proxyServer.Start(); Console.WriteLine("СЕРВЕР ЗАПУСТИЛИ!"); } public static void Stop() { proxyServer.BeforeRequest -= OnRequest; proxyServer.Stop(); Console.WriteLine("СТОПАНУЛ СЕРВАК!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); } private static async Task OnRequest(object sender, SessionEventArgs e) { Console.WriteLine("Зашли в редирект"); Console.WriteLine(e.HttpClient.Request.RequestUri.Host.ToString()); var host = e.HttpClient.Request.RequestUri.Host.ToLower(); var host_ip = e.HttpClient.Request.RequestUriString.ToLower(); Console.WriteLine(host); Console.WriteLine(host_ip); if (e.HttpClient.Request.RequestUri.Host.ToString().Contains("vk.com")) { Console.WriteLine("Редиректаем на ЮТТТТТТТТТТТТТТТТТТТТТТТТТТТТТ"); e.Redirect("https://youtube.com/"); Console.WriteLine("РЕДИРЕКТНУЛИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИИ"); } } //static extern IntPtr GetForegroundWindow(); private static Task OnCertificateValidation(object sender, CertificateValidationEventArgs e) { // игнорирование некоторых ошибок SSL-сертификата if (e.SslPolicyErrors == System.Net.Security.SslPolicyErrors.None) { e.IsValid = true; } if (e.SslPolicyErrors == System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors) { foreach (X509ChainStatus chainStatus in e.Chain.ChainStatus) { if (chainStatus.Status != X509ChainStatusFlags.RevocationStatusUnknown && chainStatus.Status != X509ChainStatusFlags.NoError) { e.IsValid = false; } } e.IsValid = true; } //return false; return Task.CompletedTask; }
Finik8, возможно, проблема заключается в том, что вы используете ******-сервер для перенаправления запросов на другой сайт. Некоторые браузеры могут блокировать такие запросы из соображений безопасности. Попробуйте использовать другой метод перенаправления, например, использование JavaScript для перенаправления на другой сайт. Также, убедитесь, что вы используете последнюю версию библиотеки TitaniumWeb Proxy и что вы правильно настроили ******-сервер. Надеюсь, это поможет вам решить проблему.
Ну как бы сертификаты и задумывались как защита от таких как ты - чтобы браузер поверил что это vk.com у тебя должен быть доверенный сертификат на этот домен.
vtlstolyarov, как можно получить доверенный сертификат? каждой системе же выделяется сертификат, верно, может можно его как-то взять и использовать в проге для запросов?
vtlstolyarov, насколько я понимаю, надо как-то добавить сертификат, сгенерированный TitaniumWeb Proxy, в доверенные сертификаты, но я не знаю, как сделать это программно и надо ли это делать. До этого, когда я первый раз запускал программу, у меня вылезло уведомление о новом сертификаты, и можно ли ему доверять. Но теперь, когда я запускаю прогу, ничего такого не вылазит
Finik8, да, надо добавить сертификат ****** сервера в доверенные - это надо сделать только один раз, потому уже он находится в списке доверенных