Ugrás a tartalomra
Fejezetek

Hibaelhárítás

SSL-hibák: átirányítási hurok és ssl_error_rx_record_too_long

Két tipikus HTTPS-hiba okai és javítása: a végtelen átirányítás proxy-SSL-es tárhelyen, és a „SSL received a record that exceeded the maximum permissible length” hiba.

Két ritkább, de zavaró HTTPS-hibáról lesz szó: az átirányítási hurokról, amit a „proxy SSL” tárhelyek okoznak, és a böngésző „SSL received a record that exceeded the maximum permissible length” hibájáról.

Átirányítási hurok proxy SSL-es tárhelyen

Vannak tárhelyek (a példa a Network Solutions), amelyek az SSL-t proxyn keresztül kezelik. Ilyenkor sem a PHP, sem a WordPress is_ssl() függvénye nem tudja megállapítani, hogy az oldal HTTPS-en érkezett: a szerveroldali kód mindig HTTP-t lát. Ha a WooCommerce kényszeríti a HTTPS-t, az oldal újra és újra átirányít a HTTPS-címre, amíg a böngésző végtelen hurok miatt (kb. 30 másodperc után) szerverhibát nem jelez.

A tárhelyek ezt a korlátot régóta ismerik, és nem változtatnak rajta. PHP-ban nincs rá megkerülő megoldás. Az egyetlen kiút:

  1. Kapcsold ki a HTTPS-kényszerítést (a „Force SSL” jellegű beállítást a WooCommerce-ben, illetve minden olyan bővítményben vagy szabályban, amely a HTTPS-re irányít).
  2. Az átirányítást JavaScripttel oldd meg: a következő kódot a tárhely maga is ezt javasolja (a példában a subdomain.yourdomain.com helyére a saját domainnevedet írd):
<script language="javascript">
if (document.location.protocol != "https:")
{
document.location.href = "https://subdomain.yourdomain.com" + document.location.pathname;
};
</script>

Ez nem szabványos megoldás, ezért hivatalos támogatás nincs hozzá. Ha teheted, válts olyan tárhelyre, amely nem proxy-SSL-t használ.

ssl_error_rx_record_too_long

Ez a hiba azt jelenti, hogy a böngésző titkosított választ várt, de titkosítatlan adatot kapott. A böngésző hibaoldalt mutat a webhely helyett, általában az összes HTTPS-oldalon, nem csak a WooCommerce-éin. A pontos üzenet böngészőnként más:

  • Firefox: „SSL received a record that exceeded the maximum permissible length”, hibakód: ssl_error_rx_record_too_long.
  • Chrome és Edge: „This site can’t provide a secure connection” vagy ERR_SSL_PROTOCOL_ERROR.
  • Safari: „Safari can’t open the page because Safari can’t establish a secure connection to the server.”

Gyakori okok

  • Nincs SSL-tanúsítvány. A webhely címei HTTPS-re vannak állítva, de a szerveren nincs érvényes tanúsítvány telepítve vagy beállítva.
  • Hibás portbeállítás. Az SSL alapértelmezett portja a 443. Ha a szerver másik porton figyel, vagy a 443-as port titkosítatlan tartalmat szolgál ki, a böngésző váratlan adatot kap.
  • Hibás VirtualHost. Apache-szerveren a 443-as port VirtualHostja hiányzik vagy rosszul van megadva, ezért a szerver sima HTTP-vel válaszol.
  • HTTPS-cím SSL nélkül. Ha a WordPress cím (URL) és a Honlap cím (URL) https://-sel kezdődik, de a szerver nincs felkészítve SSL-re, minden oldalkérés ezt a hibát adja.

Ellenőrzés a címeknél

  1. Nyisd meg a Beállítások → Általános oldalt.
  2. Nézd meg a WordPress cím (URL) és a Honlap cím (URL) mezőt.
  3. Ha mindkettő https://-sel kezdődik, kérdezd meg a tárhelyszolgáltatót, hogy a domainedhez van-e érvényes, aktív SSL-tanúsítvány.
  4. Ha nincs tanúsítvány, és nincs is szükséged HTTPS-re, írd át mindkét címet http://-re. Ha a hiba miatt be sem tudsz lépni az irányítópultra, kérj segítséget a tárhelyszolgáltatótól, vagy írd át a címeket közvetlenül az adatbázisban.

A Beállítások → Általános oldal a WordPress cím és a Honlap cím mezőkkel

A képen a két cím mezőt keresd: itt http:// vagy https:// az előtag, ezt kell egyeztetned a szerver tényleges beállításával.

A tanúsítvány ellenőrzése és a szolgáltató

Egy online SSL-ellenőrzővel (például SSL Labs vagy SSL Shopper) megnézheted, helyesen van-e telepítve a tanúsítvány. Ha az eszköz hibát jelez, küldd el az eredményt a tárhelyszolgáltatódnak, hogy javítsák.

Ha a címek jók, és a hiba megmarad, kérd meg a szolgáltatót vagy a szerver üzemeltetőjét, hogy nézzék át:

  • van-e érvényes SSL-tanúsítvány a domainedhez;
  • figyel-e a szerver SSL-kapcsolatokra a 443-as porton;
  • helyes-e a 443-as port Apache- vagy Nginx-VirtualHostja, és a megfelelő dokumentumgyökérre mutat-e.

Mivel ez szerverszintű beállítási hiba, a szolgáltató tudja a leggyorsabban megoldani.