„Vaša veza nije privatna“: upozorenje o SSL certifikatu
· 5 min čitanja
Što pogreška znači
Preglednik se povezao sa serverom, server je predstavio svoj certifikat, a preglednik mu je odbio vjerovati. Chrome prikazuje „Your connection is not private“ s kôdom pogreške ispod; Firefox „Warning: Potential Security Risk Ahead“; Safari „This Connection Is Not Private“. Stranica nije hakirana i vaše računalo nije zaraženo; certifikat koji je server poslao ne prolazi provjere koje preglednik izvodi.
Kôd pogreške kaže koja je provjera pala:
NET::ERR_CERT_DATE_INVALID: certifikat je istekao ili je njegov datum početka u budućnosti (ili je sat posjetitelja pogrešan).NET::ERR_CERT_COMMON_NAME_INVALID: certifikat je za drugi naziv, na primjer zawww.example.com, ali ne i zaexample.com.NET::ERR_CERT_AUTHORITY_INVALID: preglednik ne može povezati certifikat s pouzdanim izdavateljem: samopotpisan, nepoznat izdavatelj ili nedostaje posrednički certifikat.NET::ERR_CERT_REVOKED: izdavatelj je opozvao certifikat.SSL_ERROR_BAD_CERT_DOMAINiSEC_ERROR_EXPIRED_CERTIFICATEsu Firefoxove verzije pogrešaka naziva i datuma.
Uobičajeni uzroci
- Certifikat je istekao. Let's Encrypt certifikati traju 90 dana; automatska obnova tjednima je zakazivala, a nitko nije primijetio do dana kad je istekao. Plaćeni certifikati istječu nakon godine dana, a poruka o obnovi otišla je na staru adresu.
- Obnovljen, ali nije ponovno učitan. certbot je upisao novi certifikat na disk, ali web server i dalje poslužuje stari iz memorije, jer nedostaje reload hook.
- Pogrešan naziv. Certifikat pokriva
example.com, ali posjetitelji dolaze nawww.example.com, ili je dodana nova poddomena bez certifikata. - Nedostaje posrednički certifikat. Server šalje samo svoj certifikat, a ne lanac. Preglednici na računalu često popune prazninu iz predmemorije; mobiteli i aplikacije ne uspijevaju.
- Problem sa satom. Na računalu posjetitelja pogrešan datum čini da svaki certifikat izgleda istekao ili još nevažeći. Na serveru pogrešan sat kvari obnovu.
- CDN ili proxy ispred s vlastitim certifikatom koji je istekao ili ne pokriva naziv, dok je izvor u redu.
Ako ste posjetitelj
Prvo provjerite datum i vrijeme na svom računalu; prazna CMOS baterija ili isključena sinkronizacija vremena uzrokuje da svaka stranica ne uspijeva. Zatim pokušajte s drugom mrežom. Ako se upozorenje pojavljuje samo za jednu stranicu i na svakom uređaju, problem je certifikat stranice i vlasnik ga mora popraviti. Klik na „Proceed to site (unsafe)“ je u redu za stranicu koju poznajete, ali ne za bilo što s prijavom ili plaćanjem.
Ako je riječ o vašoj stranici: prvo provjerite
Pokrenite SSL checker. Pokazuje datum isteka, nazive za koje certifikat vrijedi i je li lanac potpun, izvana, bez ikakve predmemorije preglednika. Zatim, na vlastitom serveru:
# što server zapravo šalje?
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject -ext subjectAltName
# što je na disku?
sudo certbot certificates
# je li sat servera točan?
timedatectl
Ako su datumi na disku noviji od datuma koje server šalje, imate slučaj 2: obnovljen, ali nije ponovno učitan.
Popravci na vlastitom serveru
1. Obnovite certbotom
sudo certbot renew
# ili, ako renew kaže „not yet due“, a poslužuje se stari certifikat:
sudo certbot renew --force-renewal
sudo systemctl reload nginx # ili apache2
Ako obnova ne uspije, izlaz kaže zašto. Uobičajeni razlozi: port 80 je blokiran ili preusmjeren negdje gdje certbot ne očekuje (HTTP-01 izazov traži da je /.well-known/acme-challenge/ dostupan preko običnog HTTP-a), DNS zapis pokazuje na drugi server ili je dosegnuto ograničenje nakon mnogo neuspjelih pokušaja. Popravite uzrok i pokrećite sudo certbot renew --dry-run dok ne prođe.
2. Učinite ponovno učitavanje automatskim
# Debian/Ubuntu: certbot instalira timer; provjerite ga
systemctl list-timers | grep certbot
# dodajte deploy hook da web server preuzme novi certifikat
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. Dodajte naziv koji nedostaje
sudo certbot --nginx -d example.com -d www.example.com -d shop.example.com --expand
Zastavica --expand zamjenjuje postojeći certifikat onim koji pokriva sve navedene nazive.
4. Popravite lanac
Uz certbot usmjerite web server na fullchain.pem, nikad na cert.pem:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Apache: SSLCertificateFile s fullchain.pem. Uz kupljeni certifikat preuzmite posrednički („CA bundle“) od izdavatelja i dodajte ga na datoteku certifikata. Testirajte s sudo nginx -t (Apache: sudo apachectl configtest), ponovno učitajte, zatim provjerite lanac SSL checkerom.
5. Popravite sat
sudo timedatectl set-ntp true
timedatectl
Server čiji je sat pogrešan za više od nekoliko minuta ne prolazi provjeru certifikata u oba smjera.
6. Zajednički hosting ili alat za izradu stranica
Većina hostinga izdaje i obnavlja Let's Encrypt certifikate iz kontrolne ploče („SSL/TLS“, „Security“, „Let's Encrypt“). Otvorite je, provjerite pokriva li certifikat i example.com i www.example.com i kliknite obnovi ili ponovno izdaj. Ako ploča kaže da je certifikat važeći, a preglednici se ne slažu, hosting ima problem s ponovnim učitavanjem ili lancem na svojoj strani.
Kad je problem vašeg hostinga
Poštovani, otprilike od 06:00 UTC preglednici prikazuju „Your connection is not private“ (NET::ERR_CERT_DATE_INVALID) za moju web stranicu example.com. Kontrolna ploča pokazuje važeći certifikat, pa se čini da web server poslužuje stari. Možete li ponovno učitati certifikat na serveru i provjeriti automatsku obnovu za moju domenu?
Sprječavanje sljedećeg
Istekao certifikat jedini je ispad s poznatim datumom. Nadzor SSL certifikata upozorava vas prije isteka i ponovno ako su lanac ili naziv pogrešni; 5 provjera je besplatno. Na vlastitom serveru Quick Fix obnavlja certifikat tamo gdje je postavljen certbot i ponovno učitava web server, po fiksnoj cijeni; Deep Fix postavlja obnovu tamo gdje je još nema.
Što sad
Provjerite certifikat
Datum isteka, lanac i naziv hosta bilo kojeg certifikata u nekoliko sekundi. Besplatno, bez registracije.
Provjera SSL-aIspad? Mi uskačemo.
Na vlastitom serveru ili u web prostoru s SSH pristupom: Quick Fix po fiksnoj cijeni za uobičajene uzroke, Deep Fix uz naplatu u blokovima od 15 minuta za ostalo, kroz cijelu noć i dan. Cijena prije narudžbe.
Naručite popravakViše vodiča
- Vaša web stranica ne radi. Evo što učiniti u prvih 15 minuta.
- Server ne radi: što prvo provjeriti i kojim redom
- Pogreška 502 Bad Gateway: uzroci i kako je popraviti
- Pogreška 503 Service Unavailable: preopterećenje ili održavanje?
- Pogreška 504 Gateway Timeout: što znači i kako je popraviti
- DNS_PROBE_FINISHED_NXDOMAIN: uzroci i popravci
- ERR_CONNECTION_REFUSED: uzroci i kako ga popraviti