”Yhteytesi ei ole yksityinen”: SSL-varmenteen varoitus
· 5 min lukuaika
Mitä virhe tarkoittaa
Selain otti yhteyden palvelimeen, palvelin esitti varmenteensa, ja selain kieltäytyi luottamasta siihen. Chrome näyttää ”Yhteytesi ei ole yksityinen” ja virhekoodin alla; Firefox ”Varoitus: mahdollinen tietoturvariski edessä”; Safari ”Tämä yhteys ei ole yksityinen”. Sivustoa ei ole murrettu eikä tietokoneesi ole saastunut; palvelimen lähettämä varmenne ei läpäise selaimen tekemiä tarkistuksia.
Virhekoodi kertoo, mikä tarkistus epäonnistui:
NET::ERR_CERT_DATE_INVALID: varmenne on vanhentunut tai sen alkamispäivä on tulevaisuudessa (tai kävijän kello on väärässä).NET::ERR_CERT_COMMON_NAME_INVALID: varmenne on toiselle nimelle, esimerkiksi nimellewww.example.commutta ei nimelleexample.com.NET::ERR_CERT_AUTHORITY_INVALID: selain ei pysty johtamaan varmennetta luotettuun myöntäjään: itse allekirjoitettu, tuntematon myöntäjä tai puuttuva välivarmenne.NET::ERR_CERT_REVOKED: myöntäjä on peruuttanut varmenteen.SSL_ERROR_BAD_CERT_DOMAINjaSEC_ERROR_EXPIRED_CERTIFICATEovat Firefoxin versiot nimi- ja päivämäärävirheistä.
Yleiset syyt
- Varmenne vanheni. Let's Encrypt -varmenteet ovat voimassa 90 päivää; automaattinen uusinta epäonnistui viikkoja eikä kukaan huomannut ennen päivää, jolloin se loppui. Maksulliset varmenteet vanhenevat vuoden jälkeen, ja uusintaviesti meni vanhaan osoitteeseen.
- Uusittu, mutta ei ladattu uudelleen. certbot kirjoitti uuden varmenteen levylle, mutta verkkopalvelin tarjoaa yhä vanhaa muistista, koska uudelleenlatauskoukku puuttuu.
- Väärä nimi. Varmenne kattaa nimen
example.com, mutta kävijät saapuvat osoitteeseenwww.example.com, tai uusi aliverkkotunnus lisättiin ilman varmennetta. - Puuttuva välivarmenne. Palvelin lähettää vain oman varmenteensa, ei ketjua. Työpöytäselaimet täyttävät aukon usein välimuistista; puhelimet ja sovellukset epäonnistuvat.
- Kelloongelma. Kävijän tietokoneella väärä päivämäärä saa jokaisen varmenteen näyttämään vanhentuneelta tai vielä voimaan tulemattomalta. Palvelimella väärä kello rikkoo uusinnan.
- CDN tai välityspalvelin edessä omalla varmenteellaan, joka vanheni tai ei kata nimeä, vaikka alkuperäispalvelin on kunnossa.
Jos olet kävijä
Tarkista ensin tietokoneesi päivämäärä ja kellonaika; kuollut CMOS-paristo tai pois päältä kytketty ajan synkronointi saa jokaisen sivuston epäonnistumaan. Kokeile sitten toista verkkoa. Jos varoitus tulee vain yhdelle sivustolle ja jokaisella laitteella, sivuston varmenne on ongelma, ja omistajan on korjattava se. ”Jatka sivustolle (ei turvallinen)” -napsautus sopii sivustolle, jonka tunnet, ei millekään, jossa on kirjautuminen tai maksu.
Jos kyse on sinun sivustostasi: tarkista ensin
Aja SSL-tarkistin. Se näyttää vanhenemispäivän, nimet, joille varmenne on voimassa, ja onko ketju täydellinen, ulkoa, ilman selaimen välimuistia. Sitten omalla palvelimellasi:
# mitä palvelin oikeasti lähettää?
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject -ext subjectAltName
# mitä levyllä on?
sudo certbot certificates
# onko palvelimen kello oikein?
timedatectl
Jos levyn päivämäärät ovat uudempia kuin palvelimen lähettämät, kyseessä on tapaus 2: uusittu mutta ei ladattu uudelleen.
Korjaukset omalla palvelimella
1. Uusi certbotilla
sudo certbot renew
# tai, jos renew sanoo "not yet due" mutta tarjottu varmenne on vanha:
sudo certbot renew --force-renewal
sudo systemctl reload nginx # tai apache2
Jos uusinta epäonnistuu, tuloste kertoo miksi. Tavalliset syyt: portti 80 on estetty tai ohjattu johonkin, mitä certbot ei odota (HTTP-01-haaste tarvitsee polun /.well-known/acme-challenge/ tavoitettavaksi pelkällä HTTP:llä), DNS-tietue osoittaa toiseen palvelimeen tai rajoitus tuli vastaan monien epäonnistuneiden yritysten jälkeen. Korjaa syy ja aja sudo certbot renew --dry-run, kunnes se läpäisee.
2. Tee uudelleenlatauksesta automaattinen
# Debian/Ubuntu: certbot asentaa ajastimen; tarkista se
systemctl list-timers | grep certbot
# lisää deploy-koukku, jotta verkkopalvelin poimii uuden varmenteen
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. Lisää puuttuva nimi
sudo certbot --nginx -d example.com -d www.example.com -d shop.example.com --expand
--expand-lippu korvaa olemassa olevan varmenteen sellaisella, joka kattaa kaikki listatut nimet.
4. Korjaa ketju
Certbotilla osoita verkkopalvelin tiedostoon fullchain.pem, ei koskaan tiedostoon cert.pem:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Apache: SSLCertificateFile tiedostolla fullchain.pem. Ostetulla varmenteella lataa välivarmenne (”CA bundle”) myöntäjältä ja liitä se varmennetiedoston perään. Testaa komennolla sudo nginx -t (Apache: sudo apachectl configtest), lataa uudelleen ja tarkista sitten ketju SSL-tarkistimella.
5. Korjaa kello
sudo timedatectl set-ntp true
timedatectl
Palvelin, jonka kello on pielessä yli muutaman minuutin, epäonnistuu varmenteen validoinnissa molempiin suuntiin.
6. Jaettu hosting tai sivustotyökalu
Useimmat palveluntarjoajat myöntävät ja uusivat Let's Encrypt -varmenteet hallintapaneelista (”SSL/TLS”, ”Tietoturva”, ”Let's Encrypt”). Avaa se, tarkista, että varmenne kattaa sekä example.com että www.example.com, ja napsauta uusi tai myönnä uudelleen. Jos paneeli sanoo varmenteen olevan voimassa mutta selaimet ovat eri mieltä, palveluntarjoajalla on uudelleenlataus- tai ketjuongelma omalla puolellaan.
Kun ongelma on palveluntarjoajan
Hei, noin klo 6.00 UTC alkaen selaimet näyttävät ”Yhteytesi ei ole yksityinen” (NET::ERR_CERT_DATE_INVALID) verkkosivustolleni example.com. Hallintapaneeli näyttää voimassa olevan varmenteen, joten verkkopalvelin näyttää tarjoavan vanhaa. Pyydän lataamaan varmenteen palvelimella uudelleen ja tarkistamaan verkkotunnukseni automaattisen uusinnan.
Seuraavan ehkäiseminen
Vanhentunut varmenne on se ainoa katko, jonka päivämäärä tiedetään. SSL-varmenteen valvonta varoittaa ennen vanhenemista ja uudelleen, jos ketju tai nimi on väärä; 5 tarkistusta on ilmaista. Omalla palvelimellasi Quick Fix uusii varmenteen siellä, missä certbot on otettu käyttöön, ja lataa verkkopalvelimen uudelleen, kiinteään hintaan; Deep Fix ottaa uusinnan käyttöön, jos sitä ei vielä ole.
Mitä seuraavaksi
Tarkista varmenne
Minkä tahansa varmenteen vanhenemispäivä, ketju ja isäntänimi sekunneissa. Ilmainen, ei rekisteröitymistä.
SSL-tarkistinAlhaalla? Hoidamme sen.
Omalla palvelimellasi tai webtilassa, johon on SSH-pääsy: Quick Fix kiinteään hintaan yleisiin syihin, Deep Fix 15 minuutin jaksoissa laskutettuna loppuun, kellon ympäri. Hinta ennen tilausta.
Tilaa korjausLisää oppaita
- Verkkosivustosi on alhaalla. Näin toimit ensimmäisten 15 minuutin aikana.
- Palvelin alhaalla: mitä tarkistaa ensin ja missä järjestyksessä
- 502 Bad Gateway: syyt ja korjaus
- 503 Service Unavailable: ylikuormitus vai huolto?
- 504 Gateway Timeout: mitä se tarkoittaa ja miten sen korjaa
- DNS_PROBE_FINISHED_NXDOMAIN: syyt ja korjaukset
- ERR_CONNECTION_REFUSED: syyt ja korjaus