Ошибка 400 сертификат


Offline

vdchernikov

 


#1
Оставлено
:

16 ноября 2020 г. 13:35:41(UTC)

vdchernikov

Статус: Активный участник

Группы: Участники

Зарегистрирован: 17.10.2019(UTC)
Сообщений: 28
Российская Федерация
Откуда: Ярославская обл.

Сказал(а) «Спасибо»: 1 раз

Добрый день!
Используем КриптоПРО на iOS/Android в мобильном приложении для шифрования трафика с Stunnel.

сервер ContinentTLS с недавних пор после генерации новых сертифкатов федеральным казначеством
стал возвращать ошибку 400 Bad request Ssl certificate error.

На Android ошибку удалось испарвить путем включения всей цепочки сертифкатов в контейнер пользователя
(тема https://www.cryptopro.ru…osts&t=18835&p=1 )

Но тотже самы контейнер пользователя со всей цепочкой сертифкатов не оказывает эффекта на iOS версии.
Есть подозрение что КриптоПРО на iOS просто не отправляет доплнительные сертифкаты на сервер и игнорирует сертифкаты вложенные в контейнер;

И второй вопрос можно ли както на iOS также как на Android посмотреть в логах какие сертификаты отсылаются на сервер, аналогично логам Android:

Цитата:

%% Certificate message:


Subject: CN=Фамилия Имя Отчество, SURNAME=Фамилия, GIVENNAME=Имя Отчество, O=ФЕДЕРАЛЬНОЕ КАЗНАЧЕЙСТВО, L=Москва, ST=г. Москва, C=RU, EMAILADDRESS=address@roskazna.ru, OID.1.2.643.100.3=#120B3035333635303137313339, OID.1.2.643.3.131.1.1=#120C343032353031313533383435
Valid from Wed Sep 09 16:44:00 GMT+03:00 2020 until Thu Dec 09 16:44:00 GMT+03:00 2021


Subject: CN=Федеральное казначейство, O=Федеральное казначейство, C=RU, L=Москва, STREET=»Большой Златоустинский переулок, д. 6, строение 1″, OID.1.2.643.100.1=#120D31303437373937303139383330, OID.1.2.643.3.131.1.1=#120C303037373130353638373630, ST=г. Москва, EMAILADDRESS=uc_fk@roskazna.ru
Valid from Wed Feb 05 17:02:47 GMT+03:00 2020 until Mon Feb 05 17:02:47 GMT+03:00 2035


Subject: CN=Минкомсвязь России, OID.1.2.643.3.131.1.1=#120C303037373130343734333735, OID.1.2.643.100.1=#120D31303437373032303236373031, O=Минкомсвязь России, STREET=»улица Тверская, дом 7″, L=г. Москва, ST=77 Москва, C=RU, EMAILADDRESS=dit@minsvyaz.ru
Valid from Fri Jul 06 15:18:06 GMT+03:00 2018 until Tue Jul 01 15:18:06 GMT+03:00 2036
——

Отредактировано пользователем 16 ноября 2020 г. 14:15:04(UTC)
 | Причина: Не указана


Вверх


Offline

Александр Лавник

 


#2
Оставлено
:

22 ноября 2020 г. 21:48:46(UTC)

Александр Лавник

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 30.06.2016(UTC)
Сообщений: 3,307
Мужчина
Российская Федерация

Сказал «Спасибо»: 53 раз
Поблагодарили: 746 раз в 694 постах

Здравствуйте.

Если вопрос еще актуален, то попробуйте установить сертификаты промежуточных УЦ для сертификата клиента и сервера в хранилище ca (Промежуточные центры сертификации) и проверить работу.

Техническую поддержку оказываем тут
Наша база знаний


Вверх

Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

Раздражает, когда какой-то сайт не загружается и отзывается непонятными ошибками. Обычно они сопровождаются одним из десятков HTTP-кодов, которые как раз намекают на характер сбоя, а также его вероятные причины. 

В этом материале поговорим об ошибке 400 Bad Request. Почему она появляется и как ее исправить. 

Чуть подробнее об ошибке 400

Как и другие коды, начинающиеся на четверку, 400 Bad Request говорит о том, что возникла проблема на стороне пользователя. Зачастую сервер отправляет ее, когда появившаяся неисправность не подходит больше ни под одну категорию ошибок. 

Стоит запомнить — код 400 напрямую связан с клиентом (браузером, к примеру) и намекает на то, что отправленный запрос со стороны пользователя приводит к сбою еще до того, как его обработает сервер (вернее, так считает сам сервер). 

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Из-за чего всплывает Bad Request?

Есть 4 повода для возникновения ошибки сервера 400 Bad Request при попытке зайти на сайт:

  1. Некорректно настроенные HTTP-заголовки в запросе со стороны клиента. Некоторые приложения и сайты мониторят заголовки на предмет наличия в них чего-нибудь подозрительного. Если ваш запрос не соответствует ожиданиям сервера, то высока вероятность появления ошибки 400 (но это не всегда вина пользователя).
  2. Такой же сбой появляется, если клиент пытается загрузить на сервер файл слишком большого размера. Это происходит, потому что на большинстве сайтов есть ограничения по размеру загружаемых данных. Причем ограничение может быть как в 2 гигабайта, так и в 600 килобайт.
  3. Еще ошибка 400 появляется, когда пользователь пытается получить доступ к несуществующей странице. То есть в браузер банально ввели ссылку с опечаткой, некорректным доменом или поддоменом.
  4. Устаревшие или измененные куки-файлы. Сервер может воспринять подмену куки-файлов как попытку атаковать или воспользоваться дырой в безопасности. Поэтому такие запросы сходу блокируются.

Читайте также

Ошибка сервера 401

Ошибка 502 Bad Gateway Error

Исправляем ошибку 400 Bad Request на стороне клиента

Так как ошибка 400 в 99 случаев из 100 возникает на стороне клиента, начнем с соответствующих методов. Проверим все элементы, участвующие в передаче запроса со стороны клиента (браузера).

Проверяем адрес сайта

Банальщина, но необходимая банальщина. Перед тем как бежать куда-то жаловаться и предпринимать более серьезные шаги, повнимательнее взгляните на ссылку в адресной строке. Может, где-то затесалась опечатка или вы случайно написали большую букву вместо маленькой. Некоторые части адреса чувствительны к регистру. 

А еще стоит поискать запрашиваемую страницу через поисковик, встроенный в сайт. Есть вероятность, что конкретная страница куда-то переехала, но сервер не может показать подходящий HTTP-код в духе 404 Not Found. Если, конечно, сам сайт работает. 

Сбрасываем параметры браузера

Этот метод срабатывает, если сервер отказывается принимать запросы из-за «битых» куки или других данных. Дело в том, что сайт использует куки-файлы, чтобы хранить информацию о пользователе у него же в браузере. При входе конкретного человека на ресурс, он пытается распознать куки и сравнить информацию с той, что уже есть на сервере.

Иногда случается, что куки-файлы одного или нескольких пользователей вступают в конфликт. В таком случае надо открыть настройки браузера, а потом удалить весь кэш, куки и прочие связанные элементы. 

В зависимости от браузера процесс удаления куки-файлов может немного отличаться. В Chrome это работает так:

  • Открываем настройки браузера. 
  • Переходим в раздел «Конфиденциальность и безопасность».
  • Выбираем «Файлы cookie и другие данные».
  • Нажимаем на кнопку «Удалить все».Удаление кукис в Google Chrome

Для чистки cookies можно использовать стороннюю программу в духе CCleaner или CleanMyPC.

Загружаем файл подходящего размера

Если ошибка 400 Bad Request появляется при попытке загрузить на сайт какой-нибудь файл, то стоит попробовать загрузить файл поменьше. Иногда вебмастера ленятся грамотно настроить ресурс, и вместо понятного объяснения вроде «Загружаемые файлы не должны быть размером больше 2 мегабайт» люди получают Bad Request. Остается только гадать, какой там у них лимит. 

Устраняем проблемы, связанные с Windows и сторонним софтом

Помимо браузера, на работу сети могут влиять другие программные продукты (экраны, защищающие от «непонятных подключений»). И вирусы. Да и сама Windows может стать проблемой. Почти любой ее компонент. Поэтому надо бы проделать следующее:

  • Повторно установить NET.Framework. Желательно перед этим удалить предыдущую версию.
  • Установить какой-нибудь приличный антивирус (а лучше два) и запустить глубокую проверку систему. Возможно, подключению и входу на ресурс мешает вредоносная программа.
  • Если у вас уже установлен антивирус, то, наоборот, попробуйте его отключить. Иногда встроенные в них экраны проверки подключений блокируют работу браузера целиком или отдельных страниц. Лучше выдать браузеру больше прав на выполнение своих задач или установить антивирус, который более лояльно относится к установленному на компьютере софту.
  • Еще надо поменять параметры брандмауэра. Его можно разыскать в панели управления Windows. Там надо добавить в список исключений ваш браузер. Тогда брандмауэр не будет мешать подключению к запрашиваемому сайту.
  • Почистить Windows от программного мусора. Можно пройтись приложением CCleaner. 
  • Обновить драйверы для сетевых устройств. 
  • Обновить Windows или просканировать систему на наличие погрешностей в системных компонентах.

Ищем проблему на стороне сервера

Если что-то происходит на стороне ресурса, то это редко заканчивается ошибкой 400. Но все-таки есть несколько сценариев, при которых клиента обвиняют в сбое зря, а настоящая вина лежит на сервере. 

Проверяем требования к HTTP-заголовкам

Пока настраиваешь сайт, несложно допустить ошибку или даже парочку. Возможно, требования к HTTP-заголовком указаны некорректно, и сервер ожидает запросы с ошибками, которые по объективным причинам не может распознать адекватно. Тогда администратору стоит перепроверить ожидаемые заголовки на своем сайте или в приложении. 

Удаляем свежие обновления и плагины

Иногда ошибка 400 Bad Request появляется после обновления CMS или установки новых плагинов. Если у вас она появилась из-за этого, то наиболее логичное решение — откатиться до более ранней версии CMS и удалить все новые плагины. 

Главное, перед этим сделать резервную копию данных. И перед установкой обновлений тоже стоило бы.

Проверяем состояние базы данных

Некоторые сторонние расширения для того же WordPress получают полный доступ к ресурсу и имеют право вносить изменения даже в подключенную базу данных. Если после удаления свежих плагинов ошибка 400 никуда не исчезла и появляется у всех, кто пытается зайти на сайт, стоит проверить, в каком состоянии находится база данных. Нужно вручную проверить все записи на наличие подозрительных изменений, которые могли быть сделаны установленными расширениями.

Исправляем ошибки в коде и скриптах

Ничего из вышеперечисленного не помогло? Тогда осталось проверить свой код и работающие скрипты. Лучше провести дебаггинг вручную и не надеяться на помощь компьютера. Сделать копию приложения или сайта, потом пошагово проверить каждый отрезок кода в поисках ошибок. 

В крайнем случае придется кричать «полундра» и звать на помощь техподдержку хостинга. Возможно, возникли сложности на их стороне. Тогда вообще ничего не надо будет делать. Просто ждать, пока все исправят за вас. 

На этом все. Основные причины появления 400 Bad Request разобрали. Как ее лечить — тоже. Теперь дело за вами. Пользуйтесь полученной информацией, чтобы больше не пришлось мучиться в попытках зайти на нужный ресурс.

First of all, enable debug log in nginx.conf:

error_log  logs/error.log debug;

And restart nginx. Then repeat the request and check the log file. Find the first line with verify:0:

2019/12/05 22:34:50 [debug] 5980#9776: *17 verify:0, error:20, depth:0, subject:"/CN=...", issuer:"/CN=..."

Here you see error:20. The error code comes from OpenSSL. Here you can find the constant name by code and here the corresponding description by constant name.

Alternatively you can verify the certificate using openssl command line tool:

openssl verify -CAfile ca.crt client.crt

To verify it as the server sees it, ca.crt has to be the file listed in ssl_client_certificate or ssl_trusted_certificate directive in nginx.conf.

To verify the certificate on its own, ca.crt has to be the certificate that was used to sign client.crt. If it is self-signed, it’ll be client.crt itself (client.crt will be twice in a row).

If you’re getting error 20 specifically and your client certificate is self-signed, you might have encountered this bug. To fix it you should either drop keyUsage from your certificate entirely or add keyCertSign to the list. To verify whether you’ve stumbled upon it, check whether Key Usage is listed in X509v3 extensions: section in the output of the following command:

openssl x509 -in client.crt -text -noout

Ошибка 400 Bad Request возникает, когда сервер не может понять запрос, отправленный клиентом. В вашем случае это может быть связано с тем, что настройки сервера не соответствуют запросу.

Судя по коду из вашего nginx.conf, вы пытаетесь перенаправить HTTP-запросы на HTTPS-порт с помощью rewrite. Однако вместо этого запросы на порт 8080 проксируются на другой сервер.

Для исправления проблемы с ошибкой 400 вам нужно изменить ваш nginx.conf, чтобы он правильно перенаправлял HTTP-запросы на HTTPS-порт.

Примерно так должно выглядеть ваш nginx.conf:

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        root /var/www/example.com/;
        index index.html;
    }

    location /server/ {
        resolver 00.000.000.00;
        proxy_pass https://00.000.000.00;
    }
}

Этот конфигурационный файл перенаправляет все запросы на порт 80 (HTTP) на порт 443 (HTTPS) с помощью return 301. Затем он обрабатывает запросы на порт 443 (HTTPS), предоставляя файлы из каталога /var/www/example.com/ для пути / и проксируя запросы на путь /server/ на другой сервер.

Убедитесь, что после внесения изменений вы перезапустили сервер NGINX с помощью команды
sudo systemctl restart nginx.

Интернет ― это сложная схема взаимодействия устройств. Между компьютером и сервером сайта легко могут появиться проблемы с сетью: код ошибки 400, 406, 410. В этой статье мы рассмотрим ошибку 400.

Что значит ошибка 400

Все ошибки, которые начинаются на 4, говорят о том, что проблема на стороне пользователя.

Ошибка 400 bad request переводится как «плохой запрос». Она возникает тогда, когда браузер пользователя отправляет некорректный запрос серверу, на котором находится сайт.

Чаще всего проблема действительно обнаруживается на стороне пользователя, но бывают и исключения, когда проблема на стороне провайдера или владельца сайта.

Причины появления ошибки 400

  1. Ссылка на страницу была некорректной. Если в ссылке была допущена опечатка, сайт, как правило, выдаёт ошибку 404: «Страница не найдена». Опечатку в запросе может сделать сам пользователь, который вводит URL-адрес вручную, а также владелец сайта, который размещает ссылку на странице.
  2. Используются устаревшие файлы cookies.
  3. Пользователь загружает на сайт слишком большой файл.
  4. Антивирус или брандмауэр блокирует сайт.
  5. На компьютере есть вирус, который блокирует доступ к сайту.
  6. Проблемы на стороне интернет-провайдера.

Как исправить ошибку 400

Перед тем как заниматься серьёзной настройкой устройства, проверьте правильность написания URL-адреса. Если ссылка была скопирована с сайта, попробуйте найти нужную страницу по ключевым словам. Как только вы найдёте правильную ссылку, сайт заработает.

Если причина не в этом, переходите к другим настройкам, которые описаны ниже.

Очистите файлы cookies и кэш браузера

Файлы куки и кэш созданы для того, чтобы запоминать сайты и персональные данные пользователя. За счёт этой памяти ускоряется процесс повторной загрузки страницы. Но cookies и кэш, которые хранят данные предыдущей сессии, могут конфликтовать с другим токеном сессии. Это приведёт к ошибке 400 Bad Request.

Очистите кэш браузера по инструкции и попробуйте зайти на страницу заново.

Очистить кэш и куки можно не только вручную, но и с помощью программ CCleaner и Advanced SystemCare.

CCleaner ― эффективное решение для оптимизации работы системы. За пару кликов можно очистить кэш и cookies в нескольких браузерах одновременно. Также можно быстро почистить все временные файлы, которые могут замедлять работу системы. Интуитивный интерфейс не требует специальных знаний:



Как решить ошибку 404 1

Ещё одним популярным приложением для оптимизации ПК является Advanced SystemCare. Эта программа поможет удалить ненужные файлы, очистить реестр, ускорить работу системы, освободить память и место на диске. Также она может контролировать безопасность просмотра веб-страниц, защищая конфиденциальные данные, блокируя вредоносные веб-сайты и предотвращая майнинг криптовалюты.

Очистите кэш DNS

DNS-кэш — это временная база данных вашего компьютера, которая хранит IP-адреса часто посещаемых веб-сайтов. Такая база данных ускоряет связь с сервером.

Вы можете изменить DNS, однако данные из кэша отправляют на старый IP-адрес. После очистки браузер начнёт обращаться к новому IP-адресу. Чаще всего проблема несоответствия DNS приводит к ошибке 502, но также может появиться ошибка 400.

В зависимости от вашей операционной системы очистите кэш по одной из инструкций.

  1. 1.

    Откройте командную строку. Для этого введите в поисковую строку «Командная строка» и выберите появившееся приложение:



    Как решить ошибку 404 2

  2. 2.

  3. 3.

    Дождитесь сообщения об очистке кэша:



    =932x270

  1. 1.

    Откройте терминал клавишами Ctrl+Alt+T.

  2. 2.

    Введите команду:

    Для Ubuntu:

    sudo service network-manager restart

    Для других дистрибутивов:

    sudo /etc/init.d/nscd restart
  1. 1.

    Войдите в терминал. Для этого нажмите клавиши Command + Space. Введите Терминал и нажмите на найденное приложение.

  2. 2.

    Введите команду:

    sudo killall -HUP mDNSResponder

Готово, вы очистили кэш DNS. Попробуйте заново зайти на сайт.

Измените настройки антивируса и брандмауэра

Нарушать соединение с сервером может брандмауэр или антивирус. Чтобы проверить, мешает ли соединению один из них, временно отключите ваш антивирус и брандмауэр. Если страница заработала, нужно менять настройки одного из них.


Как отключить брандмауэр на Windows 7/10

Брандмауэр ― межсетевой экран, стена, которая защищает компьютер от вторжений и от утечки информации в сеть. Многие антивирусы имеют межсетевой экран. В этом случае брандмауэр можно выключить, чтобы он не нарушал соединения с сайтами. Если в антивирусе нет межсетевого экрана, не отключайте брандмауэр без особой причины.

Чтобы отключить брандмауэр на Windows 7/10:

  1. 1.

    В левом нижнем углу экрана нажмите на иконку Лупы.

  2. 2.

    Перейдите во вкладку «Приложения» и выберите Панель управления:



    Как решить ошибку 404 4

  3. 3.

    Нажмите на Брандмауэр Защитника Windows:



    Как решить ошибку 404 5

  4. 4.

    В левом меню нажмите на Включение и отключение брандмауэра Защитника Windows:



    Как решить ошибку 404 6

  5. 5.

    В блоках «Параметры для частной сети» и «Параметры для общественной сети» отметьте пункт Отключить брандмауэр Защитника Windows. Нажмите OK:



    Как решить ошибку 404 7

Готово, вы отключили брандмауэр.

Проверка на вирусы

Вирусы на устройстве могут нарушать связь с сайтами. Отсканируйте систему антивирусной программой. Когда вирус будет найден, удалите его и перезагрузите устройство. Если вируса нет, попробуйте другой способ.

Обновите драйверы сетевых устройств

Устаревшее ПО на сетевых устройствах может генерировать неверные запросы. Установите новые драйверы для сетевого соединения.

Уменьшите размер файла

Несмотря на то что ошибки 4xx в основном вызваны проблемами на устройстве пользователя, бывают случаи, когда ошибка связана с сервером. 400 ошибка сервера возникает, когда пользователь загружает слишком большой файл на ресурс.

Создатели сайта иногда ставят ограничения на файлы, которые загружают пользователи, чтобы не занимать много места на своём сервере. Если у вас появляется ошибка 400 при загрузке файла, то, скорее всего, он больше, чем требует владелец веб-ресурса. Попробуйте уменьшить вес файла и загрузите его снова.

Проблема на стороне интернет-провайдера

Попробуйте загрузить другой веб-сайт. Если ошибка сохраняется, значит проблема может быть связана с нарушением работы сетевого оборудования. Чтобы её исправить попробуйте перезагрузить сетевое оборудование (модем, маршрутизатор) и само устройство.

Если и это не помогло, обратитесь к своему интернет-провайдеру. Максимально полно опишите проблему и действия, которые вы предпринимали. Опишите, какая у вас операционная система и браузер, используете ли брандмауэр и прокси-сервер, очистили ли вы кэш и куки, проверили ли устройство на вирусы.

Для владельца сайта

Если вы увидели, что ваш сайт выдаёт ошибку 400, проделайте все вышеперечисленные действия. Вполне возможно, что у ваших клиентов всё отображается правильно. Очень редко, но случается, что проблема всё-таки с сервером, на котором находится сайт. В этом случае обратитесь к хостинг-провайдеру, чтобы найти ошибку в настройках.

В этой статье мы расскажем об ошибке 400 bad request: что означает, почему возникает и как исправить.

Ошибка 400: что значит
Ошибка 400: причины появления
Как исправить ошибку HTTP 400 bad request

  • Очистите кеш и куки
  • Очистите кеш DNS
    • Windows
    • Linux
    • MacOS
  • Измените настройки антивируса и брандмауэра
  • Проверьте устройство на вирусы
  • Уменьшите размер файла
  • Проблема на стороне интернет-провайдера
  • Информация для владельца сайта

Ошибка 400: что значит

Все ошибки с кодом 4** означают, что проблема возникла на стороне пользователя.

Ошибка bad request 400 возникает тогда, когда браузер отправляет некорректный запрос серверу, на котором расположен сайт.

Как правило, проблема действительно возникает на стороне пользователя. Но бывают случаи, когда проблема обнаруживается на стороне владельца сайта или провайдера.

Ошибка 400: причины появления

Наиболее распространенными причинами возникновения error 400 являются:

  • устаревшие файлы куки и кеш браузера,
  • вирус на устройстве, который блокирует доступ к сайту,
  • загрузка пользователем на сайт слишком большого файла,
  • блокировка сайта антивирусом или брандмауэром,
  • некорректная ссылка на страницу,
  • проблемы на стороне интернет-провайдера.

Как исправить ошибку HTTP 400 bad request

Прежде всего проверьте, корректно ли указан URL-адрес. Ссылка на сайте могла быть указана с опечаткой или же вы могли случайно ошибиться при вводе URL. Попробуйте найти нужную страницу в браузере по ключевым словам. Когда вы найдете правильную ссылку, сайт заработает.

Если проблема не в этом, перейдите к настройкам, описанным ниже.

Очистите кеш и куки

Кеш и cookies созданы для того, чтобы запоминать файлы сайта и персональные данные пользователей. За счет хранения в памяти этих данных ускоряется повторная загрузка страницы сайта. Но при этом кеш и куки, которые хранят данные прошлой сессии, могут конфликтовать с токеном текущей сессии. Это вызовет код ошибки 400.

Очистите кеш и cookies по инструкции и попробуйте открыть страницу заново.

Очистить кеш и куки можно также при помощи программ CCleaner и Advanced SystemCare.

CCleaner позволяет в несколько кликов очистить кеш и cookies сразу в нескольких браузерах. Кроме того, с его помощью можно почистить все временные файлы на устройстве — они могут замедлять работу системы. Интерфейс программы интуитивно понятен и не требует технических знаний.
Advanced SystemCare — еще одна популярная программа для оптимизации работы устройства. С помощью нее можно удалять ненужные файлы, освободить память и место на жестком диске и ускорить работу системы. Также приложение может контролировать безопасность просмотра сайтов, защитить конфиденциальные данные, блокировать вредоносные веб-страницы и предотвращать майнинг криптовалюты.

Очистите кеш DNS

DNS-кеш хранит IP-адреса ранее посещенных сайтов локально на устройстве, чтобы ускорить связь с сервером и открывать веб-страницы быстрее.

Может случиться такое, что кеш DNS будет отправлять вас по старому IP-адресу. Обычно эта проблема приводит к ошибке 502, но может возникнуть и 400 ошибка сервера. Для исправления проблемы нужно почистить DNS-кеш. После этого браузер будет обращаться к новому IP-адресу и ошибка пропадет.  

Способ чистки DNS-кеша зависит от вашей операционной системы. Ниже мы описали, как очистить DNS-кеш на Windows, Linux и MacOS.

Windows

  1. Откройте командную строку. Для этого нажмите Win+R, введите «cmd» и нажмите OK:

  1. Введите команду: 

ipconfig /flushdns

  1. Дождитесь оповещения об успешной очистке кеша:

Linux

  1. Откройте терминал при помощи сочетания клавиш Ctrl+Alt+T.
  2. Введите команду:
  • Для Ubuntu:

sudo service network-manager restart

  • Для других дистрибутивов:

sudo /etc/init.d/nscd restart
 

MacOS

  1. Откройте терминал. Для этого нажмите Command+Space, введите «Терминал» и кликните по найденному приложению.
  2. Введите команду:

sudo killall -HUP mDNSResponder

Измените настройки антивируса и брандмауэра

Помешать соединению с сервером может антивирус или брандмауэр. Попробуйте временно отключить брандмауэр или антивирус. Если после этого сайт заработает, то необходимо изменить настройки брандмауэра/антивируса.

Как отключить брандмауэр на Windows 7/10/11

Брандмауэр — это межсетевой экран, защищающий ваш компьютер от мошеннических атак и утечек информации. У многих антивирусов есть встроенный межсетевой экран. Если у вашего антивируса он есть, то вы можете отключить брандмауэр для предотвращения ошибок. Если у вашего антивируса нет межсетевого экрана, отключать брандмауэр не рекомендуется.

Для отключения брандмауэра на Windows 7/10/11:

  1. Внизу экрана нажмите на значок лупы.
  2. Введите в поисковой строке «Панель управления» и выберите соответствующее приложение:

  1. Кликните на «Брандмауэр Защитника Windows»:

  1. Слева нажмите на «Включение и отключение брандмауэра Защитника Windows»:

  1. В блоках «Параметры для частной сети» и «Параметры для общественной сети» выберите пункт «Отключить брандмауэр Защитника Windows». Нажмите «OK»:

Готово, брандмауэр отключен.

Проверьте устройство на вирусы

Вирусы на телефоне или ПК могут быть причиной возникновения ошибки 400. Просканируйте ваше устройство антивирусом. Если обнаружится вирус, удалите его и перезагрузите устройство. Если вирусов нет, воспользуйтесь другими способами.
Обновите драйверы сетевых устройств
Устаревшие драйверы сетевых устройств могут генерировать некорректные запросы. Обновите драйверы и проверьте, наблюдается ли ошибка. Если проблема не исчезла, попробуйте другой способ.

Уменьшите размер файла

400 ошибка сервера может возникнуть в том случае, если пользователь загружает на сайт слишком большой файл. Иногда разработчики ограничивают максимальный размер файла, который может загрузить пользователь. Это делается для того, чтоб сэкономить место на сервере. Если при загрузке файла у вас возникала 400 ошибка, вероятно, файл превышает максимально допустимый размер. Попробуйте уменьшить файл и загрузите его повторно.

Проблема на стороне интернет-провайдера

Попробуйте открыть другой сайт. Если проблема сохраняется, вероятно, это ошибка сети. Для устранения проблемы попробуйте перезагрузить сетевое оборудование (роутер, модем) и ваше устройство.

Если перезагрузка не помогает, обратитесь к вашему интернет-провайдеру. Опишите проблему и какие действия вы предпринимали для ее устранения. Сообщите, какую операционную систему и браузер вы используете, пользуетесь ли вы брандмауэром и антивирусом, чистили ли вы кеш и куки.

Информация для владельца сайта

Что делать, если вы владелец ресурса и на вашем сайте возникла ошибка 400? Прежде всего, проделайте все вышеперечисленные шаги. Возможно, на стороне ваших клиентов сайт работает корректно. Очень редко, но все же бывает, что ошибка связана с проблемами на сервере. В таком случае необходимо обратиться в поддержку хостинг-провайдера, чтобы устранить ошибку.
 

The code and inputs

I’m trying to establish SSL connection and I’m getting 400 No required SSL certificate was sent response from the server. I’m doing this in a standard way like it’s described for example here; I run Java 8.

The sample of my code would be:

    OkHttpClient client     = new OkHttpClient();
    KeyStore keyStoreClient = getClientKeyStore();
    KeyStore keyStoreServer = getServerKeyStore();
    String algorithm        = ALGO_DEFAULT;//this is defined as "PKIX"

    KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(algorithm);
    keyManagerFactory.init(keyStoreClient, PASSWORD_SERVER.toCharArray());

    SSLContext sslContext = SSLContext.getInstance("TLS");

    TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(algorithm);
    trustManagerFactory.init(keyStoreServer);

    sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), new SecureRandom());

    client.setSslSocketFactory(sslContext.getSocketFactory());
    client.setConnectTimeout(32, TimeUnit.SECONDS); // connect timeout
    client.setReadTimeout(32, TimeUnit.SECONDS);    // socket timeout

    return client;

And here is the code that I use to send GET-request:

public String get(String url) throws IOException
{
    String callUrl  = URL_LIVE.concat(url);
    Request request = new Request.Builder()
            .url(callUrl)
            .build();
    Response response = this.client.newCall(request).execute();
    return response.body().string();
}

I enabled:

System.setProperty("javax.net.debug", "ssl");

So to see debug messages — but there’s no errors/warnings/alerts there, the only thing is in the very end:

main, called close()
main, called closeInternal(true)
main, SEND TLSv1.2 ALERT:  warning, description = close_notify
main, WRITE: TLSv1.2 Alert, length = 26
main, called closeSocket(true)

Which is the only thing I can treat as «abnormal» stuff (but I doubt it is).

I tried:

  • Different protocols disabling/enabling. For instance, forcing TLSv1 / TLSv1.1 for the socket with no success. To try that I wrapped my ssl factory into another factory which disables/enables certain protocols.
  • Disabling SSLv2Hello — but it doesn’t change the picture.
  • Install Oracle policies because before there were notices about some skipped algorithms and this installation «solved» that but the overall result is still same.
  • Setting System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true"); — lame, but also didn’t change a thing apart from message in the log Allow unsafe renegotiation: true (was «false» obviously)
  • Using KeyManagerFactory.getDefaultAlgorithm() as algorithm for KeyManagerFactory.getInstance() call. That raises exception Get Key failed: Given final block not properly padded and as far as I got the idea, it’s because of wrong algorithm used (read this). My default algorithm is: SunX509
  • Adding the certificate directly to my machine with keytool -importcert -file /path/to/certificate -keystore keystore.jks -alias "Alias" and then using this in my program via System.setProperty("javax.net.ssl.trustStore","/path/to/keystore.jks"); with setting password: System.setProperty("javax.net.ssl.trustStorePassword","mypassword"); (I set password in keytool after which confirmed trusted certificate with yes); see this and this posts. No errors were raised with this — but issue persisted.
  • Adding the certificate to the global keystore (the one located in JAVA_PATH/jre/lib/security/cacerts) with: keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias Alias -file /path/to/certificate (see this); looks like import operation was successful but it didn’t change the picture

There’s also notice in debug: ssl: KeyMgr: choosing key: 1 (verified: OK) — not sure if it’s relevant as I’m not SSL expert.

Unfortunately I can not see the server-side logs so I can’t observe the full picture.

Question

What can be the reason for this 400 error and how can I progress further (debug/try something else) ? Any tips would be much appreciated.

Понравилась статья? Поделить с друзьями:
  • Ошибка 42110 avast
  • Ошибка 400 миф
  • Ошибка 4201 vag
  • Ошибка 3922 эвотор как исправить
  • Ошибка 3853 ман тга