Произошла ошибка ssl discord
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
The error happens during the handshake, so far as I can tell from the stacktrace, not that I'd know what the implications of that are.
After several hours of nothing out of curiosity: and frustration and owing to the fact that I have a test bot on one server that I don't mind being trashed, I tried from something I saw in a stackoverflow discussion
(the added line is specifically the whole connector kwarg, which was not there before.)
The odd thing is, this CHANGED the stacktrace, but didn't actually change the error, as shown below:
Before adding verify_ssl = False, I was getting.
but after, it was shortened(?) to.
I've also tried messing with something called OpenSSL, but pretty much any discussion I can find on it is dense enough that I can't quite wrap my head around it.
Edit: After some messing around, I've written something of a minimum script to get the error to trigger:
Чуть подробнее об ошибке 400
Как и другие коды, начинающиеся на четверку, 400 Bad Request говорит о том, что возникла проблема на стороне пользователя. Зачастую сервер отправляет ее, когда появившаяся неисправность не подходит больше ни под одну категорию ошибок.
Стоит запомнить — код 400 напрямую связан с клиентом (браузером, к примеру) и намекает на то, что отправленный запрос со стороны пользователя приводит к сбою еще до того, как его обработает сервер (вернее, так считает сам сервер).
Отладка интернет-соединения
Прежде всего стоит использовать альтернативную точку доступа: подключиться к Wi-Fi, если у вас мобильный интернет, или наоборот – отключиться от стационарной точки доступа и использовать сотового оператора.
Попробуйте загрузить другой веб-сайт. Возможно, проблема не в вашем подключении, а в неполадках на стороне провайдера или самого сайта. Если это так, проблему скорее всего уже решают, так как ошибки при соединении в этом случае будут не у вас одного.
Иногда после очередного обновления в работе приложения могут наблюдаться сбои. В этом случае стоит попробовать полностью сбросить сетевые настройки.
- Перейдите в настройки смартфона.
- Найдите меню «сброс и восстановление» (в разных смартфонах оно может находиться либо в самом низу списка настроек, либо в одном из подпунктов).
- В меню «сброс и восстановление» выберите «сброс сетевых настроек».
Проверяем состояние базы данных
Некоторые сторонние расширения для того же WordPress получают полный доступ к ресурсу и имеют право вносить изменения даже в подключенную базу данных. Если после удаления свежих плагинов ошибка 400 никуда не исчезла и появляется у всех, кто пытается зайти на сайт, стоит проверить, в каком состоянии находится база данных. Нужно вручную проверить все записи на наличие подозрительных изменений, которые могли быть сделаны установленными расширениями.
Исправляем ошибки в коде и скриптах
Ничего из вышеперечисленного не помогло? Тогда осталось проверить свой код и работающие скрипты. Лучше провести дебаггинг вручную и не надеяться на помощь компьютера. Сделать копию приложения или сайта, потом пошагово проверить каждый отрезок кода в поисках ошибок.
В крайнем случае придется кричать «полундра» и звать на помощь техподдержку хостинга. Возможно, возникли сложности на их стороне. Тогда вообще ничего не надо будет делать. Просто ждать, пока все исправят за вас.
На этом все. Основные причины появления 400 Bad Request разобрали. Как ее лечить — тоже. Теперь дело за вами. Пользуйтесь полученной информацией, чтобы больше не пришлось мучиться в попытках зайти на нужный ресурс.
Заражение компьютерными вирусами
Выдачей ошибки SSL браузер, вероятно, предупреждает о попытке его подмены, переадресации на сайт-клон или иной угрозе. В это случае рекомендуется провести полную проверку компьютера на наличие вирусов. Если присутствуют другие признаки заражения, стоит скачать парочку программ со свежими антивирусными базами (например, CureIt).
Варианты исправления ситуации:
- Временно отключить все программы из автозагрузки.
- Провести очистку диска от временных файлов.
- Перезагрузить компьютер после предыдущих шагов.
Выполняются перечисленные действия программами типа CCleaner. Они дают прямой доступ как к автозагрузке операционной системе, так и к списку расширений установленных браузеров. Также в таких программах обычно есть функция удаления ненужных системных файлов, в которых запросто может быть тело компьютерного вируса.
Если предложенные способы устранения ошибки SSL не помогли, остается ждать, пока проблему устранит администратор, или воспользоваться любым другим тематическим сайтом с аналогичным контентом.
Сразу стоит обозначить фронт работ и выяснить, какие вообще проблемы будут решаться с подключением в Дискорд. Бесконечное подключение чаще всего появляется при попытке присоединиться к голосовому каналу на сервере. Связано это может быть как с вашим интернет-соединением, так и с другими факторами, о которых и пойдет речь далее.
Однако сначала все же советую проверить, нет ли проблем со скоростью, а также отключить скачивание любых файлов.
Настройки антивируса и брандмауэра
Варианты исправления ситуации:
Функция временного отключения имеется в любой защитной программе, даже интегрированной в операционную систему Windows. Но это не гарантирует полную деактивацию приложения. В этом случае разобраться в ситуации поможет открытие сайта на другом компьютере или запуск безопасного режима (актуально для проводного подключения к интернету).
Проблема с бесконечным подключением в Discord (для владельцев серверов)
Если раньше регион выбирался для всего сервера, сейчас разработчики изменили эту настройку и предлагают регулировать ее для каждого голосового канала, что осуществляется следующим образом:
Для начала определитесь, со всеми или только конкретными каналами возникает проблема. Выберите необходимый и щелкните по нему правой кнопкой мыши.
Из контекстного меню выберите пункт «Настроить канал».
Найдите пункт «Название региона» и прочитайте описание от разработчиков, чтобы понять, за что отвечает эта настройка.
Желательно выбрать регион или город, который находится ближе всего к участникам вашего сервера. Если он и так выбран, поменяйте на другой и проверьте результат.
Что такое SSL
Текущие тенденции сайтостроения предполагают высокую безопасность соединения пользователя с веб-ресурсом. Это необходимо для защиты персональных данных, секретных номеров банковских карт и информации о проводимых сделках. Организуется безопасность подключением протокола шифрования Secure Sockets Layer (сокращенно SSL).
- Сертификат выпускается доверенным центром Certification Authority (CA).
- После выдачи он подключается к домену средствами провайдера хостинга.
- Срок его действия ограничен 1 годом, после чего требуется продление.
При появлении любых сомнений в исправности защиты регистрироваться на сайте или вводить ранее выданные логин и пароль не рекомендуется. Тем более не стоит осуществлять онлайн-оплату с банковских карт или электронных кошельков, ведь не исключено, что проблема возникла из-за взлома ресурса злоумышленниками.
Проводите регулярную очистку кэша в браузере
При обновлении софта нередко остаются кэшированные данные, которые мешают корректно обрабатывать текущие страницы сайта, из-за чего возникают ошибки с сертификатом.
Чтобы очистить кэш, можно использовать внутренние настройки самого браузера либо универсальную утилиту для очистки системы Android.
Для чистки кеша необходимо:
- зайти в настройки телефона;
- выбрать меню «приложения»;
- найти веб-обозреватель и тапнуть по нему.
В зависимости от операционной системы здесь может возникнуть необходимость зайти в пункт «память». В общем, найдите кнопку «очистить кеш» и смело жмите на нее.
Устраняем проблемы, связанные с Windows и сторонним софтом
Помимо браузера, на работу сети могут влиять другие программные продукты (экраны, защищающие от «непонятных подключений»). И вирусы. Да и сама Windows может стать проблемой. Почти любой ее компонент. Поэтому надо бы проделать следующее:
- Повторно установитьNET.Framework. Желательно перед этим удалить предыдущую версию.
- Установить какой-нибудь приличный антивирус (а лучше два) и запустить глубокую проверку систему. Возможно, подключению и входу на ресурс мешает вредоносная программа.
- Если у вас уже установлен антивирус, то, наоборот, попробуйте его отключить. Иногда встроенные в них экраны проверки подключений блокируют работу браузера целиком или отдельных страниц. Лучше выдать браузеру больше прав на выполнение своих задач или установить антивирус, который более лояльно относится к установленному на компьютере софту.
- Еще надо поменять параметры брандмауэра. Его можно разыскать в панели управления Windows. Там надо добавить в список исключений ваш браузер. Тогда брандмауэр не будет мешать подключению к запрашиваемому сайту.
- Почистить Windows от программного мусора. Можно пройтись приложением CCleaner.
- Обновить драйверы для сетевых устройств.
- Обновить Windows или просканировать систему на наличие погрешностей в системных компонентах.
Всегда обновляйте устаревшие приложения
Ошибка SSL-подключения может возникать и при долгом отсутствии обновлений. Связано это с просроченным сертификатом текущей программы, так как действие сертификатов ограничено из целей безопасности.
Чтобы обновить текущий софт на смартфоне, необходимо:
- зайти в меню Play Market;
- выбрать пункт «мои приложения и игры»;
- нажать кнопку «обновить все».
Если вы не желаете обновлять некоторые приложения, всегда можно провести процесс в ручном режиме. Для удобства рекомендуется зайти непосредственно в настройки приложения и отметить галочкой пункт «автоматическое обновление».
Удаляем свежие обновления и плагины
Иногда ошибка 400 Bad Request появляется после обновления CMS или установки новых плагинов. Если у вас она появилась из-за этого, то наиболее логичное решение — откатиться до более ранней версии CMS и удалить все новые плагины.
Главное, перед этим сделать резервную копию данных. И перед установкой обновлений тоже стоило бы.
Деактивация параметра обслуживания пакетов с высоким приоритетом
Описанная в названии метода функция и так отключена по умолчанию в Дискорде, но ее стоит проверить и деактивировать. Если она находится в активном режиме, то может вызвать конфликты с маршрутизатором, негативно влияя на подключение к голосовым каналам на серверах.
Запустите Discord и нажмите шестеренку на нижней панели.
Перейдите в категорию параметров «Голос и видео».
Пролистайте параметры немного вниз и найдите тот самый пункт «Включить обслуживание пакетов с высоким приоритетом». Отключите данную настройку и перезапустите программу (вместе с этим желательно перезагрузить и маршрутизатор).
Это были все действия, которые предстоит выполнить в Windows и Дискорд для решения проблемы с подключением к RTC. Я бы мог посоветовать еще отключить антивирус, но сейчас таким ПО почти никто не пользуется, и, как показывает практика, этот метод почти никогда не решает проблему, тем более сетевую.
Загружаем файл подходящего размера
Если ошибка 400 Bad Request появляется при попытке загрузить на сайт какой-нибудь файл, то стоит попробовать загрузить файл поменьше. Иногда вебмастера ленятся грамотно настроить ресурс, и вместо понятного объяснения вроде «Загружаемые файлы не должны быть размером больше 2 мегабайт» люди получают Bad Request. Остается только гадать, какой там у них лимит.
Антивирус мешает корректной работе в сети
Хоть антивирус и предназначен для поиска уязвимостей в системе и предотвращения несанкционированного доступа в систему, он может блокировать и текущее подключение к сети, выдавая SSL-ошибку. Есть вероятность, что в эту самую минуту он отражает атаку, поэтому ошибке стоит уделить особое внимание и отключиться от текущей сети, особенно если вы используете публичную точку доступа.
Проверяем адрес сайта
Банальщина, но необходимая банальщина. Перед тем как бежать куда-то жаловаться и предпринимать более серьезные шаги, повнимательнее взгляните на ссылку в адресной строке. Может, где-то затесалась опечатка или вы случайно написали большую букву вместо маленькой. Некоторые части адреса чувствительны к регистру.
Исправляем ошибку 400 Bad Request на стороне клиента
Так как ошибка 400 в 99 случаев из 100 возникает на стороне клиента, начнем с соответствующих методов. Проверим все элементы, участвующие в передаче запроса со стороны клиента (браузера).
Сбрасываем параметры браузера
Этот метод срабатывает, если сервер отказывается принимать запросы из-за «битых» куки или других данных. Дело в том, что сайт использует куки-файлы, чтобы хранить информацию о пользователе у него же в браузере. При входе конкретного человека на ресурс, он пытается распознать куки и сравнить информацию с той, что уже есть на сервере.
Иногда случается, что куки-файлы одного или нескольких пользователей вступают в конфликт. В таком случае надо открыть настройки браузера, а потом удалить весь кэш, куки и прочие связанные элементы.
В зависимости от браузера процесс удаления куки-файлов может немного отличаться. В Chrome это работает так:
Из-за чего всплывает Bad Request?
Есть 4 повода для возникновения ошибки сервера 400 Bad Request при попытке зайти на сайт:
Полное восстановление устройства из бэкапа
Знайте, что иногда восстановить смартфон в первоначальное состояние куда проще, чем искать виновника проблем. Если ничего не помогло и вы решились на кардинальные меры, необходимо:
- перейти в настройки смартфона;
- отыскать пункт «сброс и восстановление»;
- в подпункте выбрать «полный сброс до заводских настроек».
Нетрудно догадаться, что все ваши личные данные будут утеряны безвозвратно. Поэтому рекомендуется использовать резервную копию данных контактов и заметок. Если при первой настройке вы соглашались резервировать свои данные в Google-облако, то после сброса до заводского состояния используйте свой аккаунт для восстановления данных.
Однако это не распространяется на фото, видео и музыкальные файлы, поэтому перед форматированием скопируйте мультимедиа с памяти устройства на свой компьютер.
Браузер и операционная система
Наличие проблемы с браузером проще всего определить открытием сайта на другом устройстве или в другой программе. Иногда решение заключается в банальном обновлении версии приложения до актуальной. То же относится к операционной системе, если используется интегрированный браузер вроде Edge. Пакеты обновлений для того и выпускаются, чтобы устранять неполадки в ПО.
Варианты исправления ситуации:
- Полностью очистить историю браузера вместе с кэшем и другими данными.
- Временно отключить все ранее установленные и активные расширения.
- Переустановить программу после ее полной деинсталляции.
Остается еще один вариант – сбросить настройки браузера до состояния «по умолчанию». Способ аналогичен переустановке, но экономит время. Правда, он неэффективен, если проблема возникла из-за сбоя в одном из служебных файлов программы. Отдельное внимание стоит уделить расширению, выполняющему функции антивирусной защиты, ведь оно часто блокирует даже безопасное соединение.
4 Answers 4
if you are on windows server 2018/2019 (I tried it on a personal Datacenter Server.) you can issue the command below to allow your bot to connect. I had to run it off of an administrative terminal to get it to work but this command fixed all of my problems.
Best of luck to you!
Just thought I'd let you know, my bot started falling over recently and after trying loads of stuff that was actually intended for iOS users this was what actually fixed my issue!
I'm glad that I could help, I had just got ahold of windows server datacenter 2019 edition and I was having issues too. I searched for about two hours for a fix and finally came across this. I wasn't trying to edit my registry for a certificate error so this came in clutch. Anyways, happy that I could help out!
A portable solution to this would be to use ssl_context with certifi's cacert.pem
I downloaded a different certificate (.pem file) (which was pointed out to me by a friend who works in networking) and, with the -CAfile flag I was able to point OpenSSL to it, which let it work properly.
Now, at this point it was just a matter of making Discord.py see this new certificate and use it for its SSL context, but since I'm on 0.16.12 (an old, deprecated branch), that ended up being easier said than done -- on the bot = commands.Bot() line, I added a kwarg, which looked like this:
This. didn't actually fix the issue, but as I would learn from Danny (the lead dev of discord.py) it did seem to change the stacktrace, even if the error remained the same. As it turns out, while this changes the ssl context for the connector, the websocket uses its own, and discord.py -- or at least, 0.16.12 -- doesn't have compatibility for that. So, if you navigate to your \Python36\Lib\site-packages\discord folder, you'll need to find the file with the websocket connection -- that would be gateway.py . Open it up, go to line 66 (at least, in 0.16.12 -- otherwise, look for a line that includes yield from websockets.connect(. ). Once you find your websocket connection, all you need to do is add a ssl kwarg with a proper context, which should look something like this:
If for some godforsaken reason your setup is cursed such that your python can't see the proper SSL certificates, you're on an old deprecated Async version of Discord.py, and you can't fix it any other way by knowing more about this than I do, this should solve your issue. It worked for me. Good luck!
Время и дата
Сертификат SSL имеет четко обозначенный срок действия с датой активации и деактивации. Такой подход отчасти дает дополнительную защиту, потому что в случае технического сбоя в системных часах компьютера сайты перестают открываться. Сброс времени обычно происходит «назад», на дату изготовления материнской платы, на что и реагирует система.
Варианты исправления ситуации:
- Вручную внести корректную дату и время, после чего обновить страницу в браузере.
- Воспользоваться функцией синхронизации через интернет, встроенной в Windows.
- Заменить батарейку на памяти BIOS. При первом запуске ПК нужно внести корректные данные.
Каждый раз после изменения времени рекомендуется ручное обновление страницы или перезапуск браузера. Такой шаг активирует повторное соединение с сервером и позволяет зайти на сайт «с нуля», но уже с правильным временем, соответствующим сроку действия сертификата SSL (после активации и до ее завершения).
Отключение VPN
Поскольку рассматриваемая проблема является сетевой, использование VPN или прокси тоже может стать причиной ее появления. Все, что нужно сделать, если вы используете подобное подключение – отключить программу на своем компьютере и проверить, решится ли бесконечное подключение к серверу.
Дата и время как виновники всех проблем
В современных гаджетах многие приложения (в особенности сетевые программы) синхронизируются с часами. Любая манипуляция с текущей датой приводит к ошибкам приложения. Об ошибочной дате может сообщить сам гаджет: он попросит перевести часы в соответствие с текущим временем.
Чтобы не настраивать каждый раз время на телефоне вручную, поставьте галочку в настройках «дата и время» напротив пункта «дата и время сети» или «синхронизировать время по сети»
Настройка брандмауэра
В случае с Discord брандмауэр нужен для входящих и исходящих соединений. Он может ограничить некоторые из них, если посчитает подозрительными. Однако случается это крайне редко. Впрочем, рассматриваемая проблема тоже появляется нечасто, поэтому данный метод может оказаться полезным.
Вам следует выполнить всего несколько простых действий:
Отыщите приложение брандмауэра через меню «Пуск» и запустите его.
На левой панели выберите пункт «Дополнительные параметры».
В новом окне вас будут интересовать правила для входящих подключений.
Создайте новое правило, укажите для него программу и через появившееся окно найдите исполняемый файл Discord.
Этот метод подразумевает добавление программы в исключения брандмауэра. Если вы делали это раньше, трудностей возникнуть не должно. Вы можете и просто отключить данный компонент, если не желаете заморачиваться с отдельными настройками. Скорее всего, это никак не скажется на работе программ и операционной системы в целом.
Ищем проблему на стороне сервера
Если что-то происходит на стороне ресурса, то это редко заканчивается ошибкой 400. Но все-таки есть несколько сценариев, при которых клиента обвиняют в сбое зря, а настоящая вина лежит на сервере.
Причины появления ошибок SSL
Существует всего две причины, почему браузер отображает ошибку сертификата SSL со стороны сервера. Первая заключается в окончании срока активации, вторая – это покупка сертификата у поставщика без достаточных полномочий для выдачи «полноценной защиты». Например, виной может быть выбор самоподписанного сертификата, лишь эмулирующего работу реального протокола.
Остальные проблемы обычно скрываются на локальном компьютере:
- Произошел сброс системного времени.
- Неправильно настроена антивирусная программа.
- Сбоит браузер или установленное расширение.
- Срабатывает вредоносный скрипт.
Чтобы выяснить настоящую причину, пользователю браузера рекомендуется проверить все перечисленные факторы. При том же заражении компьютерными вирусами возможно проявление сразу нескольких симптомов – от изменения текущего времени и блокировки антивирусом до подключения перенаправления страниц в браузере и других неприятностей.
Изредка встречаются ситуации, когда проблема возникла со стороны администратора, если он ошибся при подключении нового сертификата или забыл продлить его действие. Обычно такие неполадки устраняются быстро, потому что после активации сайт проверяется и, в случае неработоспособности сертификата, проводится повторное подключение вплоть до получения положительного результата.
Читайте также: