Tovább a tartalomhoz

SSL Labs SSL Server Test: HTTPS-beállítások ellenőrzése

Az SSL Labs ingyenes tesztje megmutatja, jól van-e beállítva egy oldal tanúsítványa, protokolljai és HSTS-e, a WordPress-specifikus vegyes tartalmat viszont külön kell keresni.

Az SSL Labs SSL Server Test egy nyilvános szerver HTTPS-beállítását vizsgálja: a tanúsítványt, a tanúsítványláncot, a támogatott protokollokat és titkosításokat. Az eredmény egy osztályzat (A+ és F között) és részletes jelentés. WordPress-oldalnál új tárhely, új tanúsítvány vagy átállás HTTPS-re után érdemes lefuttatni.

A teszt a szervert méri, nem a WordPress-tartalmat. Hogy az oldal elemei is biztonságosan töltődnek-e be, azt külön kell ellenőrizni (lásd lent).

  1. Nyisd meg: ssllabs.com/ssltest.
  2. A Hostname mezőbe írd be az oldal gépnevét, például example.com (protokoll nélkül).
  3. A Do not show the results on the boards jelölőnégyzetet pipáld be, ha nem akarod, hogy az eredmény megjelenjen a nyilvános listán. Éles ügyfél-oldalnál ezt érdemes bejelölni.
  4. Indítsd el a tesztet, és várd meg a jelentést.

Az SSL Labs Server Rating Guide szerint a pontszám három részből áll: protokoll 30%, kulcscsere 30%, titkosítás erőssége 40%. A betűjegy ebből jön: A 80 ponttól, B 65-től, C 50-től, D 35-től, E 20-tól, F 20 alatt.

Jegy Jelentése
A+ Jó beállítás, nincs figyelmeztetés, és a HSTS (legalább 6 hónapos max-age) be van kapcsolva.
A Jó beállítás.
A- Alapvetően jó, de van figyelmeztetés, például hiányzó TLS 1.3 vagy érvénytelen HSTS.
B, C Gyengeség miatt levont jegy.
D, E, F Súlyos hiba. Az F jelent például SSL 2.0-t, Heartbleedet vagy 1024 bitnél rövidebb kulcsot.
T A tanúsítvány nem megbízható (például önaláírt, vagy nem megbízható hitelesítésszolgáltatótól).
M A tanúsítványban lévő név nem egyezik a teszteltel.

Néhány gyakori levonás az útmutatóból:

  • B-re korlátozza: TLS 1.0 vagy 1.1 támogatása, SSL 3, RC4, hiányos tanúsítványlánc, 2048 bitnél rövidebb DH-paraméter.
  • C-re korlátozza: TLS 1.2 hiánya, POODLE.
  • F: SSL 2.0, nem biztonságos újratárgyalás, Heartbleed.
  • Lejárt, visszavont vagy önaláírt tanúsítványnál a tanúsítvány pontszáma nulla.

A jelentés az egyes hibákhoz kiírja az okot is, ezért az útmutatóban nem kell keresned.

A jelentés a tanúsítványláncot is megmutatja. A hiányos lánc a rating guide szerint B-re korlátoz. Ilyenkor a böngészők egy része működik (képes pótolni a hiányzó tagot), mások és az API-kliensek hibát adnak.

Teendő: a szerveren a tanúsítványfájl mellé a hitelesítésszolgáltató köztes (intermediate) tanúsítványát is be kell állítani. A pontos lépés a webszerver és a tárhely típusától függ, ezt kérdezd a tárhelyszolgáltatótól.

Az M jegy általában azt jelenti, hogy a tanúsítvány másik gépnévre szól (például www nélküli névre, de a www-t teszteled). A T lejárt, önaláírt vagy nem megbízható kibocsátó esetén jön.

Az útmutató szerint a régi protokollok pontszáma alacsonyabb: SSL 2.0 0%, SSL 3.0 80%, TLS 1.0 90%, TLS 1.1 95%, TLS 1.2 és 1.3 100%. A cél: csak TLS 1.2 és 1.3 legyen bekapcsolva. A TLS 1.0 és 1.1 támogatása B-re korlátoz, a TLS 1.3 hiánya A- jegyet ad.

A protokollokat a webszerver vagy a tárhely konfigurálja, WordPressből nem állítható.

A HSTS (Strict-Transport-Security fejléc) azt mondja a böngészőnek, hogy az oldalt csak HTTPS-en keresse. Az A+ jegyhez legalább 6 hónapos max-age kell. Példa az MDN dokumentációjából:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Óvatosan kapcsold be:

  • Ha a tanúsítvány hibás, a böngésző nem engedi továbblépni a felhasználót.
  • Az includeSubDomains minden aldomaint érint: ha valamelyik csak HTTP-n megy, elérhetetlen lesz.
  • Amíg a max-age le nem jár, a böngésző emlékszik rá. A preload beállítása hosszú távú vállalás, a listáról való kikerülés nem csak rajtad múlik.

Előbb teszteld rövid max-age-dzsel, és csak akkor növeld, ha minden aldomain HTTPS-en működik.

Az SSL Labs nem látja a WordPress-oldal tartalmát, ezért a vegyes tartalmat (mixed content) nem jelzi. Ez az, amikor HTTPS-en betöltött oldal HTTP-n kér le képet, scriptet vagy stílust. Az MDN szerint a böngészők a szkriptet, stíluslapot, iframe-et és fetch() hívást blokkolják, a képet, hangot, videót HTTPS-re írják át, ha lehet.

Keresés:

  1. Nyisd meg az oldalt a böngészőben HTTPS-en.
  2. Nyisd meg a fejlesztői eszközöket, és nézd a Console fület. Az MDN szerint a konzol figyelmeztet, ha vegyes tartalmat blokkolt vagy átírt.
  3. Menj végig a fő oldaltípusokon (főoldal, bejegyzés, termékoldal), mert a hibás hivatkozás sokszor egy konkrét tartalomban van.

Javítás:

  1. A Beállítások > Általános (Settings > General) oldalon a WordPress cím (URL) és a Webhely címe (URL) (angolul WordPress Address (URL), Site Address (URL)) mindkettő https://-sel kezdődjön, per jel nélkül a végén.
  2. Ha a wp-config.php-ban WP_HOME és WP_SITEURL konstans van, ott javítsd (ilyenkor a konstans felülírja az adatbázisbeli értéket):
wp-config.php
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );
  1. WP-CLI-vel is átállíthatod:
Terminál
wp option update home 'https://example.com'
wp option update siteurl 'https://example.com'
  1. A tartalomban maradt http:// hivatkozásokat cseréld le. A WordPress dokumentációja szerint sima adatbázis-csere megsértheti a szerializált adatot, ezért WP-CLI-t vagy Better Search Replace bővítményt használj, és a guid oszlopot soha ne módosítsd:
Terminál
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run

Először mindig --dry-run-nal nézd meg, mit cserélne, és előtte készíts mentést. A harmadik féltől származó hivatkozásokat (külső kép, script) írd át a szolgáltató HTTPS-címére.

Tartalék: a Content-Security-Policy: upgrade-insecure-requests fejléc minden kérést HTTPS-re emel. Az MDN szerint ez védőháló, a hibás hivatkozások javítását nem váltja ki.

Ha reverse proxy mögött fut a WordPress, és a HTTPS-t a proxy végzi, a hibás beállítás átirányítási hurkot okozhat. A WordPress dokumentációja szerint ilyenkor az X-Forwarded-Proto fejlécet kell figyelembe venni, ha a proxy beállítja.

A Cloudflare dokumentációja szerint két kapcsolat van: a látogató és a Cloudflare között, valamint a Cloudflare és a szervered között. A teszt a nyilvános gépnévre csatlakozik, ahogy egy látogató, vagyis az első kapcsolatot méri. A szervered saját beállítását és tanúsítványát ez a teszt így nem mutatja. A Cloudflare SSL/TLS módjai (Off, Flexible, Full, Full (strict)) a szervered felé menő kapcsolatot szabályozzák, a Full (strict) a szerver tanúsítványát is ellenőrzi.

  • A teszt a nyilvános gépnevet vizsgálja, és a jelentés a szerver nyilvános adatait tartalmazza. A Do not show the results on the boards bejelölése nélkül az eredmény látszhat a nyilvános listán.
  • Beállítás módosítása után futtasd újra a tesztet, és nézd meg a böngésző konzolját is.
  • Az A+ nem cél önmagában: a HSTS hibás bekapcsolása többet árt, mint az A jegy.

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