Tovább a tartalomhoz

TLS-tanúsítvány

A teszt a 443-as porton ellenőrzi a tanúsítványt: érvényes, megbízható és legalább 14 napig él-e, és hogy a szerver nem fogad-e el TLS 1.0 vagy 1.1 kapcsolatot.

A TLS-tanúsítvány bizonyítja a böngészőnek, hogy valóban a te oldaladhoz kapcsolódik, és ez teszi lehetővé a titkosított (https://) kapcsolatot. Ha lejár, nem megbízható, vagy nem erre a névre szól, a böngészők teljes oldalas figyelmeztetést mutatnak az oldalad helyett, a látogatók többsége pedig itt elfordul. A keresők és a megosztó szolgáltatások is bizalmatlanok az ilyen oldallal szemben. A riportban a teszt súlyossága magas.

A teszt ugyanezen a kapcsolaton azt is nézi, hogy a szerver nem fogad-e el még TLS 1.0 vagy 1.1 kapcsolatot: ezeket az IETF már tiltja (RFC 8996), és a böngészők sem támogatják.

A riport TLS-kézfogást indít a vizsgált host 443-as portjára az oldal nevével (SNI), és kiolvassa a szerver tanúsítványát. A <host> a vizsgált domain, vagy www. előtaggal a domain, ha a csupasz domain nem válaszol. A kézfogás időkorlátja 8 másodperc. A mérés nem szakad meg hibás tanúsítványnál sem: a lejárt vagy nem megbízható tanúsítványt is beolvassa, és külön megnézi, elfogadható-e.

A teszt kétállapotú: megfelelő vagy hiba, külön figyelmeztetés nincs. A hibák okát a riport ebben a sorrendben vizsgálja, és az első találat számít:

  1. A kézfogás nem sikerül, vagy nincs tanúsítvány (nem válaszol a 443-as port, időtúllépés, protokollhiba): hiba, ok: nem megbízható.
  2. Lejárt: a tanúsítvány lejárati ideje már elmúlt (a hátralévő napok száma negatív; a nap egész napra lefelé kerekítve).
  3. Hamarosan lejár: a lejáratig kevesebb mint 14 nap van hátra. A „0 nap” azt jelenti, hogy ma lejár.
  4. Nem megbízható: a tanúsítvány ellenőrzése nem sikerül (például önaláírt, hiányos a lánc, vagy nem erre a domainre szól).
  5. Régi protokoll: a szerver egy második, csak TLS 1.0 és 1.1 verziót felkínáló kézfogást is elfogad.

Ha egyik sem igaz, a teszt megfelel, és kiírja a lejáratig hátralévő napok számát.

Mivel az elsőként talált ok számít, egy lejáró és egyben nem megbízható tanúsítvány „hamarosan lejár”-ként jelenik meg; a másik problémát a javítás után mutatja a következő mérés.

Amit a teszt nem néz: a visszavonást (OCSP, CRL), a kulcs méretét és a titkosítók (cipher suite) erősségét, a közbenső tanúsítványok lejáratát (csak a szervertanúsítvány lejárati idejét olvassa), valamint a www. és a csupasz domain másik nevét, ha a mérés csak az egyikre indul. Ezekhez használd az SSL Labs tesztjét.

A teendő attól függ, melyik ok jelent meg a riportban.

Lejárt vagy hamarosan lejáró tanúsítvány

Szekció neve “Lejárt vagy hamarosan lejáró tanúsítvány”

A tanúsítványt meg kell újítani, és be kell kapcsolni az automatikus megújítást. A Let’s Encrypt tanúsítványai alapértelmezetten 90 napig érvényesek, és a szolgáltató azt javasolja, hogy 60 naponként újítsd meg őket. Ha tehát egy tanúsítványból 14 napnál kevesebb van hátra, a megújítás szinte biztosan elromlott.

  1. Nézd meg, mi újítja meg a tanúsítványt: a tárhelyszolgáltató, a CDN vagy a szerveren futó ACME-kliens (például a Certbot). Tárhelyen vagy CDN-en a megújítást a szolgáltatónál kell kérni, vagy bekapcsolni.

  2. Certbot esetén listázd a tanúsítványokat és a lejáratukat:

    Terminál
    certbot certificates
  3. Próbáld ki a megújítást éles tanúsítvány cseréje nélkül:

    Terminál
    certbot renew --dry-run

    A hibaüzenet többnyire megmondja az okot (például nem elérhető a 80-as port, vagy a domain nem a szerverre mutat).

  4. Ellenőrizd, hogy van-e időzített feladat, ami a megújítást futtatja. A Certbot dokumentációja szerint a legtöbb telepítés előre beállított időzítővel jön; Linuxon a systemctl list-timers listában vagy a rendszer crontabjában kell keresned a certbot renew parancsot.

  5. Ha a szerver leáll megújításkor, vagy a megújítás után újra kell tölteni a webszervert, használd a /etc/letsencrypt/renewal-hooks/ mappa horog (hook) szkriptjeit.

Nem megbízható vagy hibás tanúsítvány

Szekció neve “Nem megbízható vagy hibás tanúsítvány”

Ennek tipikus okai: önaláírt tanúsítvány, hiányzó közbenső tanúsítvány (hiányos lánc), vagy a tanúsítvány nem tartalmazza az oldal nevét. A teendő: kérj érvényes tanúsítványt a pontos névre (és a www. változatra is, ha használod), és a webszerveren a teljes láncot tartalmazó fájlt add meg. Az nginx dokumentációja szerint az ssl_certificate fájlban a szervertanúsítvány után kell következnie a közbenső tanúsítványoknak:

nginx
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;

Az elérési utakat cseréld a sajátjaidra. A Certbot a fullchain.pem fájlt adja ehhez. Az ingyenes Let’s Encrypt tanúsítványhoz a Certbot utasításai a szoftvered és rendszered kiválasztása után lépésenként végigvezetnek.

Nem kell WordPressben beállítani semmit: a tanúsítvány a webszerveren vagy a CDN-nél van, nem a WordPress részeként.

Ha a riport „Kapcsold ki a régi TLS-verziókat” javítást ad, a szerver még elfogad TLS 1.0 vagy 1.1 kapcsolatot. Elég a TLS 1.2 és 1.3.

Az http blokkba. Az nginx dokumentációja szerint az ssl_protocols alapértéke TLSv1.2 TLSv1.3, tehát valahol kifejezetten bekapcsolták a régi verziókat:

nginx
ssl_protocols TLSv1.2 TLSv1.3;

Ha egy server blokkban vagy egy beemelt fájlban is szerepel ssl_protocols sor, ott is írd át, mert a server szintű érték érvényesül.

Az Apache virtual host (vagy fő) konfigurációjába. .htaccess-ben nem működik, mert az Apache dokumentációja szerint az SSLProtocol csak a szerver- és a virtual host-szinten állítható.

Apache virtual host
SSLProtocol -all +TLSv1.2 +TLSv1.3

Ha a Cloudflare mögött vagy, a látogatók a Cloudflare TLS-beállítását látják: SSL/TLS → Edge Certificates → Minimum TLS Version: TLS 1.2. A Cloudflare dokumentációja szerint a magasabb minimum kikapcsolja a régebbi verziókat.

Cloudflare
Minimum TLS Version: TLS 1.2

Az nginx és az Apache beállítását a konfiguráció újratöltése után kezdi használni a szerver; utána ellenőrizd az eredményt.

  1. Futtasd újra a riportot a domainre. A „TLS-tanúsítvány” sor megfelelő lesz, és kiírja a lejáratig hátralévő napok számát.

  2. Parancssorból a lejárati dátumot így nézheted meg:

    Terminál
    openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates

    A notAfter sor a lejárat időpontja.

  3. A curl is megmutatja a tanúsítvány adatait és az ellenőrzés eredményét:

    Terminál
    curl -vI https://example.com/ 2>&1 | grep -iE "expire date|subjectAltName|SSL certificate verify"

    Érvényes tanúsítványnál a kimenetben ez szerepel: SSL certificate verify ok.

  4. A teljes TLS-beállítást (lánc, protokollok, titkosítók) az SSL Labs SSL Server Test vizsgálja részletesen, ingyen.

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