„Vaša povezava ni zasebna“: opozorilo o certifikatu SSL
· Branje: 6 min
Kaj napaka pomeni
Brskalnik se je povezal s strežnikom, strežnik je predložil svoj certifikat, brskalnik pa mu ni hotel zaupati. Chrome prikaže „Vaša povezava ni zasebna“ s kodo napake spodaj; Firefox „Opozorilo: možno varnostno tveganje“; Safari „Ta povezava ni zasebna“. Spletno mesto ni vdrto in vaš računalnik ni okužen; certifikat, ki ga je poslal strežnik, ne prestane preverjanj, ki jih opravi brskalnik.
Koda napake pove, katero preverjanje je spodletelo:
NET::ERR_CERT_DATE_INVALID: certifikat je potekel ali pa je njegov začetni datum v prihodnosti (ali pa je ura obiskovalca napačna).NET::ERR_CERT_COMMON_NAME_INVALID: certifikat je za drugo ime, na primer zawww.example.com, ne pa zaexample.com.NET::ERR_CERT_AUTHORITY_INVALID: brskalnik ne more izslediti certifikata do zaupanja vrednega overitelja: samopodpisan, neznan izdajatelj ali manjkajoč vmesni certifikat.NET::ERR_CERT_REVOKED: izdajatelj je certifikat preklical.SSL_ERROR_BAD_CERT_DOMAINinSEC_ERROR_EXPIRED_CERTIFICATEsta različici Firefoxa za napaki imena in datuma.
Pogosti vzroki
- Certifikat je potekel. Certifikati Let's Encrypt veljajo 90 dni; samodejna obnova je tedne spodletala in nihče ni opazil do dneva, ko je potekel. Plačljivi certifikati potečejo po enem letu, obvestilo o obnovi pa je šlo na star naslov.
- Obnovljen, vendar ni ponovno naložen. certbot je nov certifikat zapisal na disk, vendar spletni strežnik še vedno streže starega iz pomnilnika, ker manjka kavelj za ponovno nalaganje.
- Napačno ime. Certifikat pokriva
example.com, obiskovalci pa pridejo nawww.example.com, ali pa je bila dodana nova poddomena brez certifikata. - Manjkajoč vmesni certifikat. Strežnik pošlje samo svoj certifikat, ne verige. Namizni brskalniki vrzel pogosto zapolnijo iz predpomnilnika; telefoni in aplikacije odpovejo.
- Težava z uro. Na računalniku obiskovalca napačen datum povzroči, da je vsak certifikat videti potekel ali še neveljaven. Na strežniku napačna ura pokvari obnovo.
- CDN ali posrednik spredaj z lastnim certifikatom, ki je potekel ali ne pokriva imena, medtem ko je izvorni strežnik v redu.
Če ste obiskovalec
Najprej preverite datum in uro svojega računalnika; mrtva baterija CMOS ali izklopljena sinhronizacija časa povzroči, da odpove vsako spletno mesto. Nato poskusite z drugim omrežjem. Če se opozorilo pojavi samo pri enem spletnem mestu in na vseh napravah, je težava certifikat spletnega mesta in ga mora popraviti lastnik. Klik skozi „Nadaljuj na spletno mesto (nevarno)“ je v redu za spletno mesto, ki ga poznate, ne pa za nič, kar ima prijavo ali plačilo.
Če je to vaše spletno mesto: najprej preverite
Zaženite preverjanje SSL. Od zunaj, brez kakršnega koli predpomnilnika brskalnika, pokaže datum poteka, imena, za katera je certifikat veljaven, in ali je veriga popolna. Nato na vašem lastnem strežniku:
# kaj strežnik dejansko pošilja?
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject -ext subjectAltName
# kaj je na disku?
sudo certbot certificates
# ali je ura strežnika prava?
timedatectl
Če so datumi na disku novejši od datumov, ki jih pošilja strežnik, imate primer 2: obnovljen, vendar ni ponovno naložen.
Popravki na vašem lastnem strežniku
1. Obnovite s certbotom
sudo certbot renew
# ali, če renew pravi "not yet due", vendar je strežen certifikat star:
sudo certbot renew --force-renewal
sudo systemctl reload nginx # ali apache2
Če obnova spodleti, izpis pove zakaj. Običajni razlogi: vrata 80 so blokirana ali preusmerjena nekam, česar certbot ne pričakuje (izziv HTTP-01 potrebuje, da je /.well-known/acme-challenge/ dosegljiv prek navadnega HTTP), zapis DNS kaže na drug strežnik ali pa je bila dosežena omejitev hitrosti po mnogih spodletelih poskusih. Odpravite vzrok in zaženite sudo certbot renew --dry-run, dokler ne uspe.
2. Poskrbite za samodejno ponovno nalaganje
# Debian/Ubuntu: certbot namesti časovnik; preverite ga
systemctl list-timers | grep certbot
# dodajte kavelj za namestitev, da spletni strežnik prevzame nov 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 manjkajoče ime
sudo certbot --nginx -d example.com -d www.example.com -d shop.example.com --expand
Zastavica --expand nadomesti obstoječi certifikat s takim, ki pokriva vsa našteta imena.
4. Popravite verigo
S certbotom usmerite spletni strežnik na fullchain.pem, nikoli 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. Pri kupljenem certifikatu prenesite vmesni certifikat („CA bundle“) od izdajatelja in ga dodajte na konec datoteke certifikata. Preizkusite s sudo nginx -t (Apache: sudo apachectl configtest), znova naložite, nato verigo preverite s preverjanjem SSL.
5. Popravite uro
sudo timedatectl set-ntp true
timedatectl
Strežnik, katerega ura se razlikuje za več kot nekaj minut, odpove pri preverjanju certifikata v obe smeri.
6. Skupno gostovanje ali graditelj spletnih mest
Večina ponudnikov gostovanja izda in obnovi certifikate Let's Encrypt iz nadzorne plošče („SSL/TLS“, „Varnost“, „Let's Encrypt“). Odprite jo, preverite, ali certifikat pokriva tako example.com kot www.example.com, in kliknite obnovi ali ponovno izdaj. Če plošča pravi, da je certifikat veljaven, brskalniki pa se ne strinjajo, ima ponudnik težavo s ponovnim nalaganjem ali verigo na svoji strani.
Ko je težava pri vašem ponudniku gostovanja
Pozdravljeni, od približno 06:00 UTC brskalniki za moje spletno mesto example.com prikazujejo „Vaša povezava ni zasebna“ (NET::ERR_CERT_DATE_INVALID). Nadzorna plošča kaže veljaven certifikat, zato spletni strežnik očitno streže starega. Ali lahko na strežniku znova naložite certifikat in preverite samodejno obnovo za mojo domeno?
Preprečevanje naslednjega
Potečen certifikat je edini izpad z znanim datumom. Nadzor certifikatov SSL vas opozori pred potekom in znova, če je veriga ali ime napačna; 5 preverjanj je brezplačnih. Na vašem lastnem strežniku Quick Fix po fiksni ceni obnovi certifikat tam, kjer je certbot nastavljen, in znova naloži spletni strežnik; Deep Fix nastavi obnovo tam, kjer je še ni.
Kaj zdaj
Preverite certifikat
Datum poteka, veriga in ime gostitelja katerega koli certifikata v nekaj sekundah. Brezplačno, brez registracije.
Preverjanje SSLNe deluje? Posežemo mi.
Na vašem lastnem strežniku ali v spletnem prostoru z dostopom SSH: Quick Fix po fiksni ceni za pogoste vzroke, Deep Fix, obračunan v 15-minutnih blokih, za vse ostalo, 24 ur na dan. Ceno vidite pred naročilom.
Naročite popraviloVeč vodičev
- Vaše spletno mesto ne deluje. Kaj storiti v prvih 15 minutah.
- Strežnik ne deluje: kaj preveriti najprej in v katerem vrstnem redu
- 502 Bad Gateway: vzroki in kako ga odpraviti
- 503 Service Unavailable: preobremenjeno ali v vzdrževanju?
- 504 Gateway Timeout: kaj pomeni in kako ga odpraviti
- DNS_PROBE_FINISHED_NXDOMAIN: vzroki in rešitve
- ERR_CONNECTION_REFUSED: vzroki in kako ga odpraviti