VPN може передавати трафік браузера на проксі-сервер і залишати браузер нездатним використовувати цей проксі, оскільки маршрут і облікові дані — це різні речі. Завдяки безголовій автоматизації прогалину важче побачити, оскільки немає вікна та підказок, які можна помітити. Збій зазвичай проявляється як зависання або загальна помилка навігації, і першим інстинктом є звинуватити тунель. Контрольний список нижче розділяє чотири речі, які мають бути вірними, перш ніж безголовий запит через автентифікований проксі зможе успішно виконати.

Дві розмови, дві грамоти

Відбувається дві розмови, і вони належать до різних сторін. Браузер спочатку підключається до проксі-прослухувача, який може запитати його облікові дані; потім проксі створює або дозволяє подальше підключення до пункту призначення. VPN може виконувати першу частину, не будучи кінцевою точкою, яка кидає виклик браузеру, і їй нічого сказати про другу.

HTTP 407 це сигнал про те, що клієнт повинен пройти автентифікацію для запиту проксі-сервера, переданого в Proxy-Authenticate з очікуваною відповіддю в Proxy-Authorization. Це не логін веб-сайту призначення, і змішування двох є найпоширенішим джерелом плутанини.

Отже, чотири перевірки: який проксі-сервер фактично вибрав браузер, хто відповідає на 407, у якій мережі відбувається процес браузера та як облікові дані доставляються без участі людини. Кожна з них може зазнати невдачі незалежно, і кожна невдача зовні виглядає схожою. Працюйте по порядку, оскільки пізніша перевірка не може компенсувати попередню. Проксі-сервер, який ніколи не вибирався, не може бути автентифікований, а облікові дані, які існують лише на вашому ноутбуці, не можуть потрапити в контейнер.

Перевірте 1: який проксі насправді вибрано

Почніть із вибору, тому що браузер, який ігнорує ваші налаштування проксі, ніколи не впорається з завданням. У Chrome прапорець --proxy-server=proxy.example:3128 із --proxy-bypass-list для виключень, а Selenium показує те саме за допомогою параметрів браузера. Файл PAC — це інший механізм із власними режимами помилок.

Потім підтвердьте всередині запущеного браузера, а не з оболонки. Незалежне тестування з тим самим проксі — це curl -x http://proxy.example:3128 -v https://example.com, і його детальний висновок показує, чи вдалося CONNECT, що Proxy-Authenticate повернув і чи було повернуто 407. Якщо curl отримує 407 і браузер зависає, проблема полягає в шляху облікових даних, а не в мережі. Якщо curl завершується успішно, а браузер – ні, браузер не використовує той проксі-сервер, який ви вважаєте таким.

Перевірте 2: хто відповідає на 407

407 має власника, і його назва вирішує, куди піде виправлення. Якщо виклик надходить від корпоративного проксі-сервера, виправлення — це облікові дані, які браузер може надати без нагляду. Якщо він надходить від проксі-сервера, на який пересилає перший, облікові дані належать цьому другому переходу, а перший проксі може передавати виклик без змін. Прочитайте область автентифікації та хост у заголовку Proxy-Authenticate, оскільки вони називають поле, яке запитує.

Зберігайте цю відмінність у будь-якому журналі. Завдання проксі-сервера, відмова у подальшому підключенні, вхід на веб-сайті та тайм-аут транспортування VPN — це чотири різні збої з чотирма різними власниками, і одне загальне повідомлення про помилку знищує потрібну інформацію.

Перевірте 3: шлях облікових даних

Самі облікові дані є місцем, де більшість автоматичних налаштувань порушується. Selenium може встановити хост і порт проксі-сервера, але автентифікація проксі-сервера HTTP не є переносною частиною цієї конфігурації, а облікові дані в URL-адресі проксі-сервера не є механізмом, на який можна покладатися в усіх браузерах і версіях драйверів. Підтримувані параметри – це ті, які ви фактично стекуєте, документи: розширення браузера, яке відповідає на виклик, локальний проксі-сервер пересилання, який додає заголовок і доступний лише з завдання, або проксі-сервер, який автентифікує робоче навантаження іншими засобами. Свідомо оберіть один із них і порівняйте його з тими версіями браузера, драйвера та Selenium, які ви будете використовувати.

Тримайте облікові дані подалі від місць, де вони витікають. Командні рядки видно в списках процесів, знімки екрана з’являються у звітах про тестування, трасування браузера та заголовки захоплення файлів HAR, а зафіксована тестова конфігурація залишається назавжди. Використовуйте секретний механізм доставки завдання та його правила редагування, а також налаштуйте обліковий запис проксі-сервера відповідно до потрібних місць призначення або ролі.

Якщо організація пропонує дозволений прямий маршрут VPN замість обов’язкового проксі-сервера, чітко порівняйте два дизайни. Не вимикайте проксі та не імітуйте автентифікацію іншого клієнта, щоб обійти політику.

Перевірте 4: власний мережевий контекст браузера

Це перевірка, яку люди пропускають. Браузер, запущений воркером, контейнером або віддаленим вузлом Selenium Grid, використовує мережу цього середовища, тому VPN-з’єднання вашого ноутбука та проксі-змінні вашої оболонки описують шлях, якого браузер може ніколи не торкнутися.

Запишіть п’ять фактів для невдалого завдання: хост браузера, налаштований проксі-сервер, початковий шлях розпізнавача, вибраний маршрут і власника автентифікації. Потім зробіть один нешкідливий авторизований запит саме з цього контексту, увімкнувши звичайну перевірку TLS призначення та авторизацію програми. Безголовий браузер, який успішно запускається, не підтверджує ані доступу до проксі-сервера, ані покриття VPN, а скріншот порожньої сторінки взагалі нічого не доводить. Запит, який повертає 200 через увесь ланцюжок, є єдиним доказом, який має значення.

Готовий робочий процес має три властивості, які варто перевірити як набір. Існує підтримуваний маршрут від хоста веб-переглядача до проксі-сервера, явна проміжна політика, яка називає проксі-сервер і пункти призначення, а також життєвий цикл облікових даних, який не залежить від відповіді оператора на невидимий запит. Якщо будь-яке з трьох залежить від людини, робота ще не залишається без нагляду, незалежно від коду виходу. Запишіть п'ять фактів, перш ніж наступна особа успадкує конвеєр.

Схожі статті