„A kapcsolat nem biztonságos”: az SSL-tanúsítvány figyelmeztetése
· 7 perc olvasás
Mit jelent a hiba
A böngésző csatlakozott a szerverhez, a szerver bemutatta a tanúsítványát, és a böngésző nem volt hajlandó megbízni benne. A Chrome „A kapcsolat nem biztonságos” üzenetet mutat alatta egy hibakóddal; a Firefox „Warning: Potential Security Risk Ahead” üzenetet; a Safari „This Connection Is Not Private” üzenetet. Az oldalt nem törték fel, és a számítógépe nincs megfertőzve; a szerver által küldött tanúsítvány nem felel meg azoknak az ellenőrzéseknek, amelyeket a böngésző végez.
A hibakód megmondja, melyik ellenőrzés bukott meg:
NET::ERR_CERT_DATE_INVALID: a tanúsítvány lejárt, vagy a kezdő dátuma a jövőben van (vagy a látogató órája rossz).NET::ERR_CERT_COMMON_NAME_INVALID: a tanúsítvány másik névre szól, például awww.example.comnévre, de azexample.comnévre nem.NET::ERR_CERT_AUTHORITY_INVALID: a böngésző nem tudja visszavezetni a tanúsítványt megbízható hitelesítésszolgáltatóra: önaláírt, ismeretlen kibocsátó, vagy hiányzó köztes tanúsítvány.NET::ERR_CERT_REVOKED: a tanúsítványt a kibocsátója visszavonta.SSL_ERROR_BAD_CERT_DOMAINésSEC_ERROR_EXPIRED_CERTIFICATEa név- és dátumhibák Firefox-változatai.
Gyakori okok
- A tanúsítvány lejárt. A Let's Encrypt tanúsítványai 90 napig érvényesek; az automatikus megújítás hetekig hibázott, és senki nem vette észre a kifutás napjáig. A fizetős tanúsítványok egy év után járnak le, és a megújítási levél egy régi címre ment.
- Megújítva, de nem újratöltve. A certbot kiírta az új tanúsítványt a lemezre, de a webszerver még a régit szolgálja ki a memóriából, mert hiányzik az újratöltési hook.
- Rossz név. A tanúsítvány az
example.comnévre szól, de a látogatók awww.example.comcímre érkeznek, vagy egy új aldomaint tanúsítvány nélkül adtak hozzá. - Hiányzó köztes tanúsítvány. A szerver csak a saját tanúsítványát küldi, a láncot nem. Az asztali böngészők gyakran kitöltik a hiányt a gyorsítótárból; a telefonok és az alkalmazások hibáznak.
- Óraprobléma. A látogató számítógépén a rossz dátum miatt minden tanúsítvány lejártnak vagy még nem érvényesnek tűnik. A szerveren a rossz óra elrontja a megújítást.
- Elöl álló CDN vagy proxy saját tanúsítvánnyal, amely lejárt vagy nem fedi a nevet, miközben az origin rendben van.
Ha látogató
Először ellenőrizze a számítógépe dátumát és idejét; egy lemerült CMOS-elem vagy egy kikapcsolt időszinkronizálás minden oldalt hibássá tesz. Aztán próbáljon másik hálózatot. Ha a figyelmeztetés csak egy oldalnál jelenik meg, és minden eszközön, az oldal tanúsítványa a probléma, és a tulajdonosnak kell megjavítania. A „Proceed to site (unsafe)” gombra kattintás egy általa ismert oldalnál rendben van, bejelentkezést vagy fizetést tartalmazó oldalnál nem.
Ha a saját oldala: először ellenőrizze
Futtassa az SSL-ellenőrzőt. Megmutatja a lejárati dátumot, a neveket, amelyekre a tanúsítvány érvényes, és hogy a lánc teljes-e, kívülről, böngésző-gyorsítótár nélkül. Aztán a saját szerveren:
# mit küld valójában a szerver?
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject -ext subjectAltName
# mi van a lemezen?
sudo certbot certificates
# helyes a szerver órája?
timedatectl
Ha a lemezen lévő dátumok újabbak, mint a szerver által küldöttek, a 2. esetről van szó: megújítva, de nem újratöltve.
Javítások a saját szerveren
1. Megújítás certbottal
sudo certbot renew
# vagy, ha a renew „not yet due” üzenetet ad, de a kiszolgált tanúsítvány régi:
sudo certbot renew --force-renewal
sudo systemctl reload nginx # vagy apache2
Ha a megújítás hibázik, a kimenet megmondja, miért. A szokásos okok: a 80-as port blokkolva van, vagy olyan helyre van átirányítva, amelyet a certbot nem vár (a HTTP-01 kihíváshoz a /.well-known/acme-challenge/ útvonalnak sima HTTP-n elérhetőnek kell lennie), a DNS-rekord másik szerverre mutat, vagy sok sikertelen kísérlet után elérték a ráta-korlátot. Javítsa az okot, és futtassa a sudo certbot renew --dry-run parancsot, amíg át nem megy.
2. Tegye automatikussá az újratöltést
# Debian/Ubuntu: a certbot időzítőt telepít; ellenőrizze
systemctl list-timers | grep certbot
# adjon hozzá egy deploy hookot, hogy a webszerver felvegye az új tanúsítványt
printf '#!/bin/sh\nsystemctl reload nginx\n' | sudo tee /etc/letsencrypt/renewal-hooks/deploy/reload-web.sh
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-web.sh
3. Adja hozzá a hiányzó nevet
sudo certbot --nginx -d example.com -d www.example.com -d shop.example.com --expand
Az --expand kapcsoló a meglévő tanúsítványt olyanra cseréli, amely az összes felsorolt nevet fedi.
4. Javítsa a láncot
Certbottal a webszervert a fullchain.pem fájlra irányítsa, soha nem a cert.pem fájlra:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Apache: SSLCertificateFile a fullchain.pem fájllal. Vásárolt tanúsítványnál töltse le a köztes tanúsítványt („CA bundle”) a kibocsátótól, és fűzze hozzá a tanúsítványfájlhoz. Teszteljen a sudo nginx -t paranccsal (Apache: sudo apachectl configtest), töltsön újra, majd ellenőrizze a láncot az SSL-ellenőrzővel.
5. Javítsa az órát
sudo timedatectl set-ntp true
timedatectl
Az a szerver, amelynek órája néhány percnél többet tér el, mindkét irányban megbukik a tanúsítvány-ellenőrzésen.
6. Megosztott tárhely vagy weboldalszerkesztő
A legtöbb tárhelyszolgáltató a vezérlőpultról állítja ki és újítja meg a Let's Encrypt tanúsítványokat („SSL/TLS”, „Security”, „Let's Encrypt”). Nyissa meg, ellenőrizze, hogy a tanúsítvány az example.com és a www.example.com nevet is fedi-e, és kattintson a megújításra vagy az újrakiállításra. Ha a panel szerint a tanúsítvány érvényes, de a böngészők nem értenek egyet, a tárhelyszolgáltatónál van újratöltési vagy láncprobléma.
Ha a tárhelyszolgáltató problémája
Üdvözlöm! Kb. 06:00 UTC óta a böngészők „A kapcsolat nem biztonságos” üzenetet mutatják (NET::ERR_CERT_DATE_INVALID) az example.com weboldalamnál. A vezérlőpult érvényes tanúsítványt mutat, így a webszerver úgy tűnik, egy régit szolgál ki. Újratöltenék a tanúsítványt a szerveren, és ellenőriznék a domainem automatikus megújítását?
A következő megelőzése
A lejárt tanúsítvány az egyetlen leállás ismert dátummal. Az SSL-tanúsítvány monitorozása a lejárat előtt figyelmeztet, és újra, ha a lánc vagy a név hibás; 5 ellenőrzés ingyenes. Saját szerveren a Quick Fix megújítja a tanúsítványt ott, ahol a certbot be van állítva, és újratölti a webszervert, fix áron; a Deep Fix beállítja a megújítást, ahol még nincs.
Mi legyen most
Ellenőrizze a tanúsítványt
Bármely tanúsítvány lejárati dátuma, lánca és állomásneve másodpercek alatt. Ingyenes, regisztráció nélkül.
SSL-ellenőrzőLeállt? Mi beavatkozunk.
Saját szerveren vagy SSH-hozzáféréssel rendelkező tárhelyen: Quick Fix fix áron a gyakori okokra, Deep Fix 15 perces blokkokban elszámolva a többire, éjjel-nappal. Az árat rendelés előtt látja.
Javíttassa megTovábbi útmutatók
- Leállt a weboldala. Ezt tegye az első 15 percben.
- Leállt a szerver: mit ellenőrizzen először, és milyen sorrendben
- 502 Bad Gateway: okok és javítás
- 503 Service Unavailable: túlterhelés vagy karbantartás?
- 504 Gateway Timeout: mit jelent, és hogyan javítsa
- DNS_PROBE_FINISHED_NXDOMAIN: okok és javítás
- ERR_CONNECTION_REFUSED: okok és javítás