Ошибки SSL и сертификатов через прокси
Защищённое соединение с сайтом не установилось: сертификат не прошёл проверку или стороны не договорились о шифровании.
Обновлено · Редакция Prokso
- Защищённое соединение не установилось: сертификат отправляет сайт, а прокси только передаёт данные
- Чаще всего на устройстве неправильные дата и время или HTTPS перехватывает антивирус
- Включите автоматические дату и время и проверьте, что строка прокси начинается с http://
Что означает ошибка
Когда вы открываете HTTPS-сайт через HTTP-прокси, программа просит прокси открыть туннель методом CONNECT (RFC 9110). Дальше прокси только передаёт байты, а шифрованное соединение устанавливается между вашей программой и сайтом. Сертификат, который вы видите, прислал сайт.
Поэтому ошибки сертификата через прокси имеют те же причины, что и без него: часы на устройстве, программы, которые перехватывают HTTPS, настройки самого сайта. Отдельно стоят ошибки, когда программа пытается говорить по TLS с прокси там, где он ждёт обычный HTTP.
Ошибка handshake failure — это сигнал протокола TLS (RFC 8446): сторона не смогла согласовать приемлемый набор параметров безопасности. Чаще всего причина в устаревшей версии TLS или библиотеки.
Причины
- Неправильные дата и время на устройстве. Chrome показывает ERR_CERT_DATE_INVALID: сертификат кажется просроченным или ещё не действительным.
- HTTPS перехватывает антивирус или корпоративная сеть. Они подставляют собственный сертификат; если он не доверенный — ERR_CERT_AUTHORITY_INVALID.
- Схема https:// в строке прокси. Программа пытается установить TLS с самим прокси на порту, где он ждёт HTTP, и получает ERR_SSL_PROTOCOL_ERROR или «wrong version number».
- Устаревшая программа или библиотека. Она не поддерживает версии TLS и шифры, которые требует сайт: ERR_SSL_VERSION_OR_CIPHER_MISMATCH или handshake failure.
- Проблема с сертификатом самого сайта. Сертификат просрочен или выдан не на тот домен — ERR_CERT_COMMON_NAME_INVALID.
Как исправить
- Включите автоматическую установку даты и времени на устройстве.
- Проверьте строку прокси: для порта 823 она должна начинаться с
http://, как в инструкции Python requests. Сам сайт при этом может быть https://. - Временно отключите проверку HTTPS в антивирусе или попробуйте другую сеть, чтобы исключить перехват.
- Обновите браузер, программу или библиотеку, через которую работаете.
- Не отключайте проверку сертификатов в программе: так вы убираете защиту от подмены, а причину не устраняете.
- Откройте сайт без прокси: если ошибка та же, проблема в сертификате сайта.
Как проверить, что всё заработало
Через тот же прокси откройте любой известный HTTPS-сайт и страницу «Мой IP». Если они открываются без предупреждений, соединение через прокси в порядке, а ошибку даёт конкретный сайт или программа.
Диагностика за 2 минуты
Сначала вставьте строку в проверку прокси. Если там прокси работает, причина в программе или её настройках. Если нет — проверьте строку из терминала:
curl -v -x "http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823" https://api.ipify.org
- Строка
< HTTP/1.1 407сразу послеCONNECT— отвечает прокси. Название после кода, напримерNO_USER, подсказывает причину. - Прокси ответил на
CONNECTкодом 200, а дальше пришёл другой код — прокси работает, этот ответ дал сайт. - Никакого ответа, только тайм-аут — соединение не дошло до прокси: проверьте хост, порт и сеть.
Инструкции, где встречается эта ошибка
Вопросы и ответы
Видит ли прокси содержимое HTTPS-страниц?
Нет. В туннеле CONNECT шифрование устанавливается между вашей программой и сайтом, и прокси передаёт уже зашифрованные данные. Что храним мы, описано в политике: содержимое и адреса страниц, пароли не храним; для рассмотрения жалоб храним только домены, время и объём — 90 дней.
Почему ошибка только в программе, а браузер открывает сайт?
У программы может быть собственное хранилище сертификатов или старая библиотека TLS. Обновите её и проверьте, правильно ли указана схема прокси.
Можно ли просто отключить проверку сертификата?
Технически да, но не стоит: тогда программа не заметит подмены сертификата. Лучше найти и устранить причину.
Другие ошибки прокси
Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ
Регистрация за минуту, доступы сразу после оплаты.