Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
Есть программа, которая авторизируется на вебсайт (POST) и после авторизации посылает различные запросы HttpRequest.

Сегодня программа перестала логиниться - возникает ошибка - "Запрос был прерван: Не удалось создать защищенный канал SSL/TLS."

Программа не работает сразу на нескольких компьютерах.

Проверил через Fiddler - параметры POST те же самые, пароль и логин правильные, через веб броузер заходит нормально.

Может кто подсказать, что могло поменяться и не даёт залогиниться?

Спасибо.
28 июн 18, 19:43    [21529558]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
На одном из компов выдаёт другое сообщение об ошибке:
"System.Net.Sockets.SocketException (0x80004005): Удаленный хост принудительно разорвал существующее подключение
28 июн 18, 19:45    [21529561]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2421
Посмотрите, что у них в /robots.txt
Если те страницы не разрешены для посещения роботами, тогда, возможно, у них заработал софт, "вычисляющий" роботов...
28 июн 18, 20:41    [21529651]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
LR,
Нету там такого

404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
28 июн 18, 20:59    [21529665]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3605
проверьте время и дату на компьютере клиенте и компьютере сервере! разница не должна превышать 5 минут
28 июн 18, 22:11    [21529837]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2421
Если ничего не поможет, попробуйте GET вместо POST.
Было у меня как-то с одним сайтом такое: браузеры делают POST, так и сделал в своей софтине (WebClient), через какое-то время (примерно месяц) начались вроде похожие проблемы (сервер обрывал коннект), тыкался-мыкался, попробовал GET (с теми же параметрами) - помогло - проблем нет и поныне (и поныне браузеры делают POST), т.е. немножко повезло)))
28 июн 18, 23:08    [21529952]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
Roman Mejtes,
Время нормальное, да и с нескольких компов не работает
28 июн 18, 23:44    [21530024]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Изопропил
Member

Откуда:
Сообщений: 31277
Strassebahn,

Какая версия TLS?
29 июн 18, 00:04    [21530064]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Strassebahn
Roman Mejtes,
Время нормальное, да и с нескольких компов не работает

В одной подсети с нескольких работает и нескольких не?
Т.е. та сторона ни при чем, и дело в том чем отличаются пара компов?
Сертификаты? Обновления?
И не понял почему с Ослика работает коннект а с вашей проги нет?
29 июн 18, 07:14    [21530247]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
Изопропил,

А где просмотреть Какое TLS?
29 июн 18, 15:34    [21531542]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
Petro123,

Какая подсеть?
Захожу на вебсайт с разных компов, даже страны разные
29 июн 18, 15:35    [21531549]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Strassebahn,
Из всех тут вопросов ты только понял про время сравнить)).
Прога хоть твоя?
Зы.
Попробуй переформулировать вопрос и подробно рассказать проблему не экономя на чернилах.
29 июн 18, 16:04    [21531630]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
Изопропил,

Version: 3.3 (TLS/1.2)
29 июн 18, 16:07    [21531637]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
Petro123,
Uri requestUri = new Uri(args.url);
            string str = "";
            HttpWebRequest request = (HttpWebRequest) WebRequest.Create(requestUri);
            if (this.use_ip_rotation)
            {
                this.call_count++;
                int num = this.call_count % this.ips.Count;
                this.ip = this.ips[num];
                request.ServicePoint.BindIPEndPointDelegate = new BindIPEndPoint(this.BindIPEndPointCallback);
                ServicePointManager.FindServicePoint(requestUri).BindIPEndPointDelegate = new BindIPEndPoint(this.BindIPEndPointCallback);
            }
            if (args.cc == null)
            {
                request.CookieContainer = new CookieContainer();
            }
            else
            {
                request.CookieContainer = args.cc;
            }
            request.Timeout = 0x7530;
            request.ContentType = "application/x-www-form-urlencoded";
            request.Method = "POST";
            request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
            request.AllowAutoRedirect = args.redirect;
            request.KeepAlive = args.keep_alive;
            if (!string.IsNullOrEmpty(args.content_type))
            {
                request.ContentType = args.content_type;
            }
            if (!string.IsNullOrEmpty(args.miscelaneous))
            {
                request.Headers.Add(args.miscelaneous);
            }
            if (string.IsNullOrEmpty(args.user_agent))
            {
                request.UserAgent = "Mozilla/4.0(compatible;MSIE 7.0;Windows NT 6.0; SLCC1;.NET CLR 2.0.50727;Media Center PC 5.0; .NET CLR 3.0.04506;.NET CLR 1.1.4322)";
            }
            else
            {
                request.UserAgent = args.user_agent;
            }
            if (string.IsNullOrEmpty(args.accept))
            {
                request.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, app";
            }
            else
            {
                request.Accept = args.accept;
            }
            if (!string.IsNullOrEmpty(args.referer))
            {
                request.Referer = args.referer;
            }
            if (!string.IsNullOrEmpty(args.encoding))
            {
                request.Headers.Add("Accept-Encoding", args.encoding);
            }
            if (!string.IsNullOrEmpty(args.miscelaneous))
            {
                request.Headers.Add("Miscellaneous", args.miscelaneous);
            }
            if (!string.IsNullOrWhiteSpace(args.cookie_in))
            {
                request.Headers.Add("Cookie:" + args.cookie_in);
            }
            if (args.m_list != null)
            {
                foreach (string str2 in args.m_list)
                {
                    request.Headers.Add(str2);
                }
            }
            request.ServicePoint.Expect100Continue = false;
            byte[] bytes = Encoding.ASCII.GetBytes(args.post_data);
            request.KeepAlive = false;
            request.ContentLength = bytes.Length;
            using (Stream stream = request.GetRequestStream())
            {
                stream.Write(bytes, 0, bytes.Length);
                stream.Close();
            }
            using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())
            {
                if (response == null)
                {
                    args.cookie_out = null;
                    return null;
                }
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    string[] strArray;
                    str = reader.ReadToEnd().Trim();
                    if (response.Cookies != null)
                    {
                        args.cc.Add(response.Cookies);
                    }
                    args.all_cookies = new string[response.Headers.Count];
                    for (int i = 0; i < response.Headers.Count; i++)
                    {
                        args.all_cookies[i] = response.Headers.AllKeys[i] + ":" + response.Headers[i].ToString();
                    }
                    string str3 = response.Headers.Get("Set-Cookie");
                    if (!string.IsNullOrEmpty(str3))
                    {
                        strArray = str3.Split(new char[] { ',' });
                    }
                    else
                    {
                        strArray = null;
                    }
                    args.cookie_out = strArray;
                    args.single_out_coockie = str3;
                }
            }
            return str;
29 июн 18, 16:08    [21531645]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Strassebahn
Member

Откуда: Болонья, Италия
Сообщений: 1093
Изопропил,

Снимаю шляпу.

Сайт перешёл на Version: 3.3 (TLS/1.2), прога работала с Version: 3.1 (TLS/1.0).

Работаю с .Net 4.0, прямо указать TLS/1.2 невозможно,

нарыл и помогло следующий код:



 ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
ServicePointManager.DefaultConnectionLimit = 9999;
29 июн 18, 16:16    [21531669]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Алымов Анатолий
Member

Откуда: Оренбург
Сообщений: 1307
Аналогичная проблема - на сервере не устанавливает соединение с сайтом.

Приложение под IIS с помощью WebRequest подключается к одному сайту. Идет двусторонняя аутентификация сертификатами. На сервере получаю ошибку: Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.
Перерыл уже всё - куда копать пока мыслей нет, т.к. аналогичный код в консольном приложении на этом же сервере отрабатывает. В запрос добавляется клиентский сертификат из хранилища локальной машины. Доступ к закрытому ключу дан группе IIS_IUSRS и пользователю, под которым захожу на сервер на чтение. Консольное приложение от пользователя соединяется без ошибок. Из приложения IIS ошибка. В системном журнале ошибка от Schannel:
Оповещение о неустранимой ошибке было создано и отправлено удаленной конечной точке. Это может привести к разрыву соединения. Определенный в протоколе TLS код оповещения о неустранимой ошибке: 40. Состояние ошибки Windows SChannel: 252.

Если нет доступа к закрытому ключу, то коды и сообщение другое.
На своем IIS Express соединение так же проходит.
На сервере Windows 2012R2. При этом к другому - тестовому сайту соединение проходит без проблем из того же приложения.
2 ноя 18, 14:41    [21722548]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Алымов Анатолий
Member

Откуда: Оренбург
Сообщений: 1307
Нашел причину - всё та же - версия TLS.
Начал пробовать разные протоколы: SSL 3.0, TLS 1.0 - 1.1 - 1.2.
Если жестко указать 1.0 или 1.1, то соединение проходит.
Разница между консольным и asp-приложением в версии framework: консольное было 4.5.2, а asp - 4.7.2
Если консольное скомпилировать под 4.7.2 и не трогать настройки протокола - та же ошибка. Значит рабочий сайт не поддерживает 1.2.
2 ноя 18, 14:55    [21722568]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Алымов Анатолий
Member

Откуда: Оренбург
Сообщений: 1307
Опять попался сайт, с которым не удается соединиться. Ошибка всё та же: Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.
Перепробовал все настройки - все возможные вариации протоколов. На NET Framework версии > 4.5.2 соединятся отказывается. На более ранних работает без проблем. Ради эксперимента создал консольное приложение под Core 2.2 - оно вообще уходит в себя при выполнении запроса - висит в ожидании чего-то. При этом если сайт поменять, то отрабатывает нормально. Что на сервере стоит могу только из заголовков ответных догадываться - server →Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9
Chrome нормально тоже соединяется, Postman тоже.
11 янв 19, 09:07    [21782432]     Ответить | Цитировать Сообщить модератору
 Re: HttpRequest (POST) : Запрос был прерван: Не удалось создать защищенный канал SSL/TLS.  [new]
Алымов Анатолий
Member

Откуда: Оренбург
Сообщений: 1307
Что можно попробовать для стабилизации работы на разных версиях Framework?
11 янв 19, 09:08    [21782433]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить