Tovább a tartalomhoz

HTTPS-átirányítás

A teszt azt nézi, hogy a http:// cím átirányít-e a https:// változatra; ha nem, állíts be átirányítást a szerveren vagy a Cloudflare-ben.

A teszt azt ellenőrzi, hogy aki http:// címen érkezik az oldaladra (régi linkről, könyvjelzőről, kézzel beírt címmel), átkerül-e a titkosított https:// változatra. Ha nem, a látogató titkosítatlan kapcsolaton marad: a forgalmát útközben bárki olvashatja vagy módosíthatja, és a böngésző „nem biztonságos” jelzést mutat. A riportban a teszt súlyossága magas.

Az átirányítás a HSTS előfeltétele is: a böngésző a HSTS-fejlécet csak https-válaszból fogadja el, ezért előbb át kell vinni a látogatót a https-re (lásd: HSTS).

A riport egyetlen kérést küld a http://<host>/ címre, átirányítás követése nélkül, és a közvetlen választ nézi. A <host> a vizsgált domain, vagy www. előtaggal a domain, ha a csupasz domain nem válaszol.

  • Megfelelő:
    • A válasz státuszkódja 301, 302, 307 vagy 308, van Location fejléce, és ez https:// címre mutat ugyanarra a domainre. A www. előtagot a mérés nem veszi figyelembe, tehát example.com → https://www.example.com/ is megfelelő.
    • A http:// kérés egyáltalán nem sikerül (nincs nyitott 80-as port, kapcsolódási hiba vagy időtúllépés). Ilyenkor nincs titkosítatlan bejárat, ezért a teszt megfelel.
  • Hiba:
    • A válasz nem átirányítás (például 200 vagy 404).
    • Az átirányításban nincs Location fejléc, vagy az nem értelmezhető.
    • A Location http:// címre, vagy másik domainre mutat.

Amit a teszt nem néz: az átirányítás útvonalát (hogy a kért oldalra visz-e, vagy mindig a nyitóoldalra), az átirányítási láncot, és hogy a kód pontosan 301-e. A javító kártya tartós (301) átirányítást javasol, a mérés viszont a 302-t, 307-et és 308-at is elfogadja.

Ha az https:// most nem működik rendesen (lejárt vagy hiányzó tanúsítvány), a riport kártyája azt mondja, hogy előbb azt javítsd: az átirányítás ilyenkor elérhetetlenné tenné az oldalt. Lásd: TLS-tanúsítvány.

Előbb győződj meg róla, hogy az https:// változat érvényes tanúsítvánnyal működik. Utána válaszd a szervered szerinti módszert. A kártya kódja mindegyik változatnál a www. nélküli és a www. névre is érvényes; cseréld a példában szereplő example.com nevet a sajátodra.

A meglévő, 80-as portú server blokk helyére írd, ne vegyél fel mellé újat:

nginx
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}

A return 301 <URL> az nginx dokumentációja szerint átirányítást küld a megadott címre, a $host$request_uri pedig megtartja a kért gépnevet és útvonalat.

Tedd a webroot .htaccess fájljának elejére, minden más átírási szabály elé. WordPressnél a # BEGIN WordPress blokk fölé: alatta a WordPress szabálya az index.php-ra írja át a címeket, és az átirányítás csak a nyitóoldalon futna le.

.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Ha eléred a virtual host konfigurációt, az Apache dokumentációja ezt tartja a legtisztább megoldásnak: külön 80-as virtual host, benne Redirect permanent:

Apache virtual host
<VirtualHost *:80>
ServerName example.com
Redirect permanent "/" "https://example.com/"
</VirtualHost>

Ha a Cloudflare „Flexible” SSL-módban áll az oldalad előtt, a fenti szabály végtelen átirányítást okoz. Ilyenkor használd a Cloudflare-változatot, vagy állítsd az SSL-módot „Full (strict)”-re.

Ha az oldal a Cloudflare mögött van, a peremen is beállítható: SSL/TLS → Edge Certificates → Always Use HTTPS: On.

Cloudflare
Always Use HTTPS: On

A Cloudflare dokumentációja szerint a beállítás az összes http kérést https-re irányítja, és azt javasolja, hogy ne irányíts át a saját szervereden is, mert az átirányítási hurkot okozhat. A beállítás csak akkor jelenik meg, ha az SSL/TLS titkosítási mód nem „Off”.

Futtasd újra a riportot a domainre. Parancssorból a válasz fejléceit így nézheted meg:

Terminál
curl -I http://example.com/

A válasz első sorában 301-et (vagy más átirányítási kódot), a location fejlécben pedig https:// címet kell látnod. A tanúsítvány és a TLS-beállítás részletes ellenőrzéséhez használhatod az SSL Labs tesztjét is.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások