Błędy SSL i certyfikatów przez proxy

Bezpieczne połączenie ze stroną nie zostało nawiązane: certyfikat nie przeszedł weryfikacji albo strony połączenia nie uzgodniły szyfrowania.

Zaktualizowano · Redakcja Prokso

W skrócie
  • Bezpieczne połączenie nie powstało: certyfikat wysyła strona, a proxy tylko przekazuje dane
  • Najczęściej urządzenie ma złą datę i godzinę albo HTTPS przechwytuje antywirus
  • Włącz automatyczną datę i godzinę i sprawdź, czy linia proxy zaczyna się od http://

Co oznacza błąd

Gdy otwierasz stronę HTTPS przez proxy HTTP, program prosi proxy o otwarcie tunelu metodą CONNECT (RFC 9110). Dalej proxy tylko przekazuje bajty, a szyfrowane połączenie nawiązuje się między Twoim programem a stroną. Certyfikat, który widzisz, wysłała strona.

Dlatego błędy certyfikatu przez proxy mają te same przyczyny co bez niego: zegar na urządzeniu, programy przechwytujące HTTPS, ustawienia samej strony. Osobną grupą są błędy, gdy program próbuje mówić TLS z proxy tam, gdzie ono oczekuje zwykłego HTTP.

Błąd handshake failure to sygnał protokołu TLS (RFC 8446): strona połączenia nie zdołała uzgodnić akceptowalnego zestawu parametrów bezpieczeństwa. Najczęściej przyczyną jest przestarzała wersja TLS lub biblioteki.

Przyczyny

  • Nieprawidłowa data i godzina na urządzeniu. Chrome pokazuje ERR_CERT_DATE_INVALID: certyfikat wydaje się wygasły lub jeszcze nieważny.
  • HTTPS przechwytuje antywirus lub sieć firmowa. Podstawiają własny certyfikat; jeśli nie jest zaufany – ERR_CERT_AUTHORITY_INVALID.
  • Schemat https:// w linii proxy. Program próbuje nawiązać TLS z samym proxy na porcie, na którym oczekuje ono HTTP, i dostaje ERR_SSL_PROTOCOL_ERROR lub „wrong version number”.
  • Przestarzały program lub biblioteka. Nie obsługuje wersji TLS i szyfrów, których wymaga strona: ERR_SSL_VERSION_OR_CIPHER_MISMATCH lub handshake failure.
  • Problem z certyfikatem samej strony. Certyfikat wygasł lub wydano go dla innej domeny – ERR_CERT_COMMON_NAME_INVALID.

Jak to naprawić

  1. Włącz automatyczne ustawianie daty i godziny na urządzeniu.
  2. Sprawdź linię proxy: dla portu 823 powinna zaczynać się od http://, jak w instrukcji Python requests. Sama strona może przy tym działać na https://.
  3. Tymczasowo wyłącz skanowanie HTTPS w antywirusie lub spróbuj innej sieci, aby wykluczyć przechwytywanie.
  4. Zaktualizuj przeglądarkę, program lub bibliotekę, przez którą pracujesz.
  5. Nie wyłączaj weryfikacji certyfikatów w programie: usuwasz w ten sposób ochronę przed podmianą, a przyczyny nie eliminujesz.
  6. Otwórz stronę bez proxy: jeśli błąd jest ten sam, problem leży w certyfikacie strony.

Jak sprawdzić, czy działa

Przez to samo proxy otwórz dowolną znaną stronę HTTPS oraz stronę „Mój IP”. Jeśli otwierają się bez ostrzeżeń, połączenie przez proxy jest w porządku, a błąd zwraca konkretna strona lub program.

Diagnoza w 2 minuty

Najpierw wklej linię do sprawdzania proxy. Jeśli tam proxy działa, przyczyna leży w programie lub jego ustawieniach. Jeśli nie - sprawdź linię z terminala:

curl -v -x "http://LOGIN:HASŁO@gw.prokso.com:823" https://api.ipify.org
  • Wiersz < HTTP/1.1 407 zaraz po CONNECT oznacza, że odpowiada proxy. Nazwa po kodzie, na przykład NO_USER, wskazuje przyczynę.
  • Proxy odpowiedziało na CONNECT kodem 200, a potem przyszedł inny kod - proxy działa, tę odpowiedź dała strona.
  • Brak odpowiedzi, tylko przekroczony czas - połączenie nie dotarło do proxy: sprawdź host, port i sieć.

Instrukcje, w których pojawia się ten błąd

Pytania i odpowiedzi (FAQ)

Czy proxy widzi zawartość stron HTTPS?

Nie. W tunelu CONNECT szyfrowanie jest nawiązywane między Twoim programem a stroną, a proxy przekazuje już zaszyfrowane dane. Co przechowujemy, opisano w polityce: nie przechowujemy treści ani adresów stron, ani haseł; do rozpatrywania skarg przechowujemy tylko domeny, czas i objętość – przez 90 dni.

Dlaczego błąd jest tylko w programie, a przeglądarka otwiera stronę?

Program może mieć własny magazyn certyfikatów lub starą bibliotekę TLS. Zaktualizuj go i sprawdź, czy schemat proxy jest podany prawidłowo.

Czy można po prostu wyłączyć weryfikację certyfikatu?

Technicznie tak, ale nie warto: program nie zauważy wtedy podmiany certyfikatu. Lepiej znaleźć i usunąć przyczynę.

Rezydencjalne $1.59, mobilne $2.50, serwerowe $0.65 za 1 GB

Rejestracja w minutę, dostęp od razu po płatności.

Utwórz konto