ssl_error_rx_record_too_long i Apache SSL [zamknięte]


242

Mam klienta próbującego uzyskać dostęp do jednej z moich witryn, a on nadal otrzymuje ten błąd> ssl_error_rx_record_too_long

Otrzymują ten błąd we wszystkich przeglądarkach i na wszystkich platformach. W ogóle nie mogę odtworzyć problemu.

Mój serwer i ja znajduje się w USA, klient znajduje się w Indiach.

Przejrzałem problem, a głównym źródłem wydaje się, że port SSL mówi w HTTP. Sprawdziłem mój serwer i tak się nie dzieje. Wypróbowałem wymienione tutaj rozwiązanie , ale klient stwierdził, że nie rozwiązało problemu.

Czy ktoś może mi powiedzieć, jak to naprawić lub jak to odtworzyć ???

ROZWIĄZANIE

Okazuje się, że klient miał źle skonfigurowany lokalny serwer proxy!

Mam nadzieję, że pomoże to każdemu znaleźć to pytanie, próbując je debugować w przyszłości.


Myślę, że może to być również spowodowane błędnie skonfigurowanym serwerem proxy po ich stronie. Jakieś myśli na ten temat?
Subimage

34
Ponieważ został zamknięty jako nie na temat, ale wydaje się być bardzo cennym pytaniem (zajmuje bardzo wysokie miejsce w Google pod względem tego komunikatu o błędzie), może powinien zostać przeniesiony do ServerFault? To 6-letnie pytanie, więc być może SF nie było dostępne, gdy pytanie zostało zadane na początku ...
kdmurray

13
To jest pierwszy wynik wyszukiwania w sieci dla SSL_ERROR_RX_RECORD_TOO_LONG. Ma 32 faworytów, 193 głosowania, wiele bardzo pozytywnych odpowiedzi ... i jest zamknięty jako nie na temat według osoby, która wie lepiej niż reszta z nas, że to pytanie nie ma prawa istnieć.
Vladimir Kornea

2
Mógłbym debugować problemy z certyfikatem generując ten komunikat zopenssl s_client -connect my-domain.tld:443
azmeuk

2
@Subimage „ROZWIĄZANIE Okazuje się, że klient miał źle skonfigurowany lokalny serwer proxy!” Wyjaśnij, co to oznacza. Możesz być bardziej szczegółowy; frustrujące jest to, że masz rozwiązanie, ale nie
piszesz

Odpowiedzi:


169

Link wspomniał Subimage miał rację w sprawie ceny dla mnie. Sugeruje zmianę wirtualnego znacznika hosta, tj. Z <VirtualHost myserver.example.com:443>na<VirtualHost _default_:443>

Kod błędu: ssl_error_rx_record_too_long

Zwykle oznacza to, że implementacja protokołu SSL na serwerze jest nieprawidłowa. Błąd jest zwykle spowodowany problemem po stronie serwera, który administrator serwera będzie musiał zbadać.

Poniżej znajduje się kilka rzeczy, które zalecamy wypróbować.

  • Upewnij się, że port 443 jest otwarty i włączony na twoim serwerze. Jest to standardowy port do komunikacji https.

  • Jeśli SSL używa niestandardowego portu, FireFox 3 może czasami dać ten błąd. Upewnij się, że protokół SSL działa na porcie 443.

  • Jeśli używasz Apache2, sprawdź, czy używasz portu 443 dla SSL. Można to zrobić, ustawiając plik ports.conf w następujący sposób

    Listen 80
    Listen 443 https
    
  • Upewnij się, że nie masz więcej niż jednego certyfikatu SSL z tym samym adresem IP. Upewnij się, że wszystkie certyfikaty SSL korzystają z własnego dedykowanego adresu IP.

  • Jeśli używasz Apache2, sprawdź konfigurację vhosta. Niektórzy użytkownicy zgłosili zmianę w <VirtualHost>celu _default_rozwiązania błędu.

To naprawiło mój problem. Rzadko zdarza się, że google wyświetla komunikat o błędzie i otrzymuję pierwsze trafienie z właściwą odpowiedzią! :-)

Oprócz powyższych , niektóre inne rozwiązania, które znaleźli ludzie powodowali problem:

  • Upewnij się, że Twój certyfikat SSL nie wygasł

  • Spróbuj określić szyfr:

    SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3


5
Aby dodać do listy rzeczy do sprawdzenia, po sprawdzeniu wszystkich tych elementów musiałem zamienić <VirtualHost default : 443> na <VirtualHost fqdn: 443>, aby w końcu działało.
JimP

2
Miałem ten problem na serwerze whm / Cpanel. Właśnie zainstalowałem ponownie ssl, aby rozwiązać problem.
Mike D

15
_default_:443pracował dla mnie. Nie, nie mogę iść spać!
Garfonzo

Kolejna rzecz do sprawdzenia, możesz mieć domyślnie SSL, ale jeśli masz nowy wirtualny plik dziennika z tym problemem, być może nie dostarczyłeś jeszcze konfiguracji SSL, nawet jeśli port jest otwarty. (aka, ups, spóźniłem się o krok).
Josiah

1
Sprawdź także i upewnij się, że nie masz innych plików conf VirtualHost nasłuchujących na porcie 443 z niewłaściwymi ustawieniami. Jeden zły plik conf może zniszczyć wszystkie strony SSL.
Nostalg.io,

120

Rozwiązaniem dla mnie było to, że default-sslnie było włączone w Apache 2 .... po prostu wprowadzanieSSLEngine On

Musiałem wykonać a2ensite default-ssli wszystko działało.


4
Użyłem, a2enmod sslale zapomniałem o a2ensite default-ssldomyślnym vhost conf. Dziękuję Ci!
m3nda

Powinny one naprawdę default-sslwłączyć już w Ubuntu.
BadHorsie

32

W moim przypadku musiałem zmienić <VirtualHost *> z powrotem na <VirtualHost *: 80> (który jest domyślny w Ubuntu). W przeciwnym razie port 443 nie używał protokołu SSL i wysyłał zwykły kod HTML z powrotem do przeglądarki.

Możesz dość łatwo sprawdzić, czy to Twoja sprawa: po prostu połącz się z serwerem http://www.example.com:443 . Jeśli widzisz zwykły HTML, twój Apache w ogóle nie używa SSL na porcie 443, najprawdopodobniej z powodu błędnej konfiguracji VirtualHost.

Twoje zdrowie!


1
localhost: 443 ładuje plian html, co robić?
niran

@niran Myślę, że to zależy od domyślnych ustawień twojego systemu operacyjnego dla <VirtualHost>dyrektywy. Spróbuj znaleźć wartość domyślną i odpowiednio ją dostosować i upewnij się, że SSL jest włączony na tym VirtualHost.
alexm

1
Miałem ten problem z vhostem, ponieważ 000-default.conf miał nieużywaną sekcję: 443 bez SSLEngine. Dziennik Apache pokazał to, co doprowadziło mnie do właściwego toru:AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
mivk

Mój problem polegał na tym, że nie uruchomiłem „sudo a2ensite default-ssl.conf”. Sss conf po prostu nie było w katalogu z włączonymi stronami, tylko w witrynach dostępnych.
Json


10

Jeśli masz błąd po instalacji nowego vhosta https, a konfiguracja wydaje się być poprawna, pamiętaj, aby również dołączyć link sites-enabled.


2
Brzmi głupio, ale mnie to złapało
Alexei Tenitski

2
używaj a2ensite zamiast linku, jest to właściwy sposób w większości systemów
AsTeR 30.04.2013

1
Sprawdź także regułę w apache2.conf (Ubuntu): IncludeOptional-enabled-enabled / *. Conf. Upewnij się, że Twoje linki kończą się na „.conf” lub zmień tę regułę, aby uwzględnić wszystkie pliki.
lepe

1
utworzyłem konfigurację witryny z poprawną składnią i połączyłem ją z witrynami dostępnymi. Problem polegał na tym, że nazwa mojej konfiguracji nie kończyła się na „.conf”, ponieważ nigdy nie została załadowana i wystąpił błąd. Konfiguracje w moim przypadku zostały załadowane dyrektywą „Uwzględnij opcjonalne strony włączone / *. Conf”, dlatego konfiguracja musi również mieć nazwę <Cokolwiek> .conf. Trywialne, ale nie powoduje żadnego błędu składniowego (mimo wszystko nigdy nie jest ładowany) i irytujące, ponieważ ls pokazał go w witrynach dostępnych ...
roland.minner

7

Stare pytanie, ale najpierw wynik dla mnie w Google, więc oto, co musiałem zrobić.

Ubuntu 12.04 Desktop z zainstalowanym Apache

Cała konfiguracja i mod_ssl zostały zainstalowane, gdy zainstalowałem Apache, ale po prostu nie było jeszcze połączone w odpowiednich miejscach. Uwaga: wszystkie ścieżki poniżej odnoszą się do / etc / apache2 /

mod_ssljest przechowywany w ./mods-available, a konfiguracja witryny SSL jest włączona ./sites-available, wystarczy połączyć je z odpowiednimi miejscami w ./mods-enabledi./sites-enabled

cd /etc/apache2
cd ./mods-enabled
sudo ln -s ../mods-available/ssl.* ./
cd ../sites-enabled
sudo ln -s ../sites-available/default-ssl ./

Uruchom ponownie Apache i powinno działać. Próbowałem uzyskać dostęp do https: // localhost , więc wyniki mogą się różnić w przypadku dostępu zewnętrznego, ale zadziałało to dla mnie.


9
Polecenia „a2ensite default-ssl” i „a2enmodule ssl” upraszczają zarządzanie modułami i dowiązaniami stron.
Josiah


4

W moim przypadku miałem nieprawidłowy adres IP w pliku wirtualnego hosta. Odsłuch wynosił 443, a zwrotka była, <VirtualHost 192.168.0.1:443>ale serwer nie miał adresu 192.168.0.1!


Mogę potwierdzić, że to też był dla mnie problem ... zły adres IP
StanleyD

3

Proszę zobaczyć ten link .

Przeglądałem wszystkie moje pliki dziennika apache, aż znalazłem rzeczywisty błąd (zmieniłem <VirtualHost>z _default_na mój fqdn). Kiedy naprawiłem ten błąd, wszystko działało dobrze.


2

W moim przypadku problem polegał na tym, że https nie mógł się poprawnie uruchomić, ponieważ Listen 443 był w derective „IfDefine SSL”, ale mój apache nie zaczął się z opcją -DSSL. Rozwiązaniem była zmiana mojego skryptu apachectl w:

$HTTPD -k $ARGV

do:

$HTTPD -k $ARGV -DSSL

Mam nadzieję, że komuś to pomoże.


1

Mój problem był spowodowany NISKIM MTU przez połączenie VPN.

netsh interface ipv4 show inter

Idx  Met   MTU   State        Name
---  ---  -----  -----------  -------------------
  1 4275 4294967295  connected    Loopback Pseudo-Interface 1
 10 4250   **1300**  connected    Wireless Network Connection
 31   25   1400  connected    Remote Access to XYZ Network

Poprawka: interfejs netsh ipv4 ustawia interfejs „Połączenie sieci bezprzewodowej” mtu = 1400

Może to być problem z połączeniem innym niż VPN ...


1

Miałem pomieszaną konfigurację wirtualnego hosta. Pamiętaj, że potrzebujesz jednego wirtualnego hosta bez SSL dla portu 80, a drugiego z SSL dla portu 443. Nie możesz mieć obu hostów na jednym wirtualnym hoście, jak próbowała to zrobić konfiguracja wygenerowana przez webmin.


0

W niektórych przeglądarkach miałem ten sam problem z dostępem do mojej witryny SSL. Odkryłem, że musiałem dać fireFoxowi odpowiednie proxy (FireFox miał bezpośredni dostęp do Internetu).

W zależności od konfiguracji sieci (tunelowanie, filtrowanie, przekierowanie proxy) tryb „bezpośredniego dostępu do Internetu” dla FireFox generuje ten błąd.


Niektóre serwery proxy zwracają odpowiedź błędu HTTP na żądanie HTTPS, którego się nie spodziewa (np. Jeśli przeszedłeś przez niewłaściwy serwer proxy lub serwer proxy jest źle skonfigurowany). Może to być bardzo trudne do zdiagnozowania, ponieważ przeglądarki po prostu odrzucają całą rozmowę i zgłaszają błąd, zamiast wyświetlać komunikat o błędzie serwera proxy. Wireshark wykonuje jednak tę pracę. Sam na to wpadłem.
Wyścigi lekkości na orbicie

0

Możesz także spróbować naprawić plik hosts.

Zachowaj plik vhost z w pełni kwalifikowaną domeną i dodaj nazwę hosta do pliku hosts / etc / hosts (debian)

ip.ip.ip.ip name name.domain.com

Po zrestartowaniu Apache2 błąd powinien zniknąć.


0

Dla mnie rozwiązaniem było to, że mój ddclient nie wyświetlał się poprawnie ...

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.