NO_PROXY не стирает явный маршрут Requests
Различайте подавление обнаружения прокси из окружения и удаление прокси, намеренно заданного в отображении Requests.
Когда приложение передаёт Requests свою политику прокси, дайте прямое исключение для этой же политики. Для существующего Session и узкого вызова:
direct_routes = {'http': '', 'https': ''}
response = session.get(url, proxies=direct_routes, timeout=15)
Явные пустые значения выбирают прямой маршрут для соответствующих схем. Проверьте также фактический вызов и значения по умолчанию Session для более конкретных ключей хоста; переопределение только на уровне схемы не удаляет отдельный маршрут, привязанный к хосту.
Почему добавление хоста в NO_PROXY оставило явный прокси на месте? Решатель Requests 2.34.2 копирует переданное отображение и рассматривает, должно ли окружение заполнить недостающие записи. Совпадение обхода может подавить это обнаружение, не удаляя маршрут, который приложение уже предоставило.
Проверьте отображение, которое использует эта операция, прежде чем добавлять исключения на другом уровне. Оставьте проверку TLS включённой на прямом маршруте. Если перенаправление снова меняет маршрут, изучите None против пустых значений прокси на этом переходе. Ошибка сертификата там — свидетельство о доверии к назначению на этом пути, что отдельно от того, был ли выбран прокси.