
Mikä on SSL-varmenteen ketju? Opas ja vianmääritys
Kun selaimen osoitekenttään ilmestyy pieni lukko, se johtuu SSL-varmenteesta – mutta yhden varmenteen takana on kokonainen ketju, joka rakentaa luottamuksen. Seuraavaksi käymme läpi, mitä ketju tarkoittaa, miten se toimii ja miten korjaat yleisen self_signed_cert_in_chain-virheen itse.
SSL-varmenteiden määrä maailmassa: yli 170 miljoonaa aktiivista (2024) ·
Luotettujen juurivarmenteiden määrä: noin 50–60 ·
Keskimääräinen ketjun pituus: 3–4 varmennetta ·
Ketjun validointiaika: alle 100 ms optimoidussa selaimessa
Pikakatsaus
- SSL-varmenteen ketju koostuu pääte-, väli- ja juurivarmenteista (DNSimple-tuki)
- Self_signed_cert_in_chain aiheuttaa varoituksen selaimessa (Inventive HQ)
- Validointi tarkistaa ketjun jokaisen varmenteen allekirjoituksen (OneUptime-opas)
- Juurivarmenteen tarkka vaikutus yhteensopivuuteen vanhoissa järjestelmissä voi vaihdella (USAVPS-ohje)
- Luotettujen juurivarmenteiden määrä päivittyy jatkuvasti (USAVPS-ohje) (USAVPS-ohje)
- Yli 170 miljoonaa SSL-varmennetta maailmassa (2024) – määrä kasvaa jatkuvasti (DNSimple-tuki)
- Varmista, että ketju on täydellinen ja oikeassa järjestyksessä – käytä SSL Labs Server Test -työkalua (DNSimple-tuki)
SSL-varmenteen ketju on kuin digitaalinen luottoketju: jokainen lenkki vahvistaa edellisen. Alla oleva taulukko kokoaa tärkeimmät luvut ja työkalut.
| Ominaisuus | Arvo / selite |
|---|---|
| Ketjun pituus | 3–4 varmennetta (pääte, väli, juuri) (DNSimple-tuki) |
| Luotetut juurivarmenteet | n. 50–60 juurivarmennetta suurimmissa varastonhallintaohjelmissa (USAVPS-ohje) |
| Yleisin virhe | self_signed_cert_in_chain (Inventive HQ) |
| Korjausmenetelmä | Lisää oikea välivarmenne ketjuun fullchain-tiedostoon (Inventive HQ) |
| Tarkastelutyökalu | openssl s_client -connect example.com:443 -showcerts (DNSimple-tuki) |
| Validoinnin työkalu | openssl verify -CAfile root.pem -untrusted intermediate.pem server.crt (OneUptime-opas) |
| Palvelinmääritys (NGINX) | ssl_certificate osoittaa yhdistettyyn tiedostoon (DNSimple-tuki) |
| Palvelinmääritys (Apache) | SSLCertificateChainFile tai yhdistä ketju SSLCertificateFile -tiedostoon (DNSimple-tuki) |
| Ketjun oikea järjestys | palvelinvarmenne ensin, sitten välivarmenteet, viimeisenä juurivarmenne (DNSimple-tuki) |
| PEM-muoto | vaaditaan Linux-palvelimilla; jokainen varmenne on -----BEGIN CERTIFICATE----- -lohko (OneUptime-opas) |
| Let’s Encrypt -ketju | tyypillisesti kaksi BEGIN CERTIFICATE -lohkoa (lehti + välivarmenne) (Authgear-ohje) |
| Ulkoinen tarkistustyökalu | SSL Labs Server Test (DNSimple-tuki) |
Mikä on varmenteen ketju SSL:ssä?
Varmenteen ketjun rakenne
SSL-varmenteen ketju on sarja digitaalisia varmenteita, jotka yhdistävät palvelimen varmenteen luotettuun juurivarmenteeseen (DNSimple-tuki (varmenteenantajan tukisivu)). Ketju koostuu tyypillisesti päätevarmenteesta (leaf certificate), yhdestä tai useammasta välivarmenteesta (intermediate certificate) ja juurivarmenteesta (root certificate). Juurivarmenne on itse allekirjoitettu ja se on luottamuksen ankkuri – kaikki muut varmenteet luottavat siihen.
Miksi ketjua tarvitaan
Ilman ketjua selain ei voisi tarkistaa, onko palvelimen varmenne oikeasti myönnetty luotetun tahon toimesta. Ketju mahdollistaa varmenteen myöntämisen ketjussa: varmenteenantaja (CA) ei itse allekirjoita kaikkia varmenteita, vaan se käyttää välivarmenteita, jotka on allekirjoitettu juurivarmenteella. Tämä jakaa riskiä ja helpottaa hallintaa.
Jos ketjussa on virhe – esimerkiksi puuttuva välivarmenne – selain ei voi luottaa sivustoon, vaikka itse palvelinvarmenne olisi täysin kelvollinen. Tämä johtaa varoitukseen ja luottamuksen menetykseen.
Käytännössä tämä tarkoittaa: yksi puuttuva tai väärässä järjestyksessä oleva lenkki riittää katkaisemaan luottoketjun.
Mitä tarkoittaa self_signed_cert_in_chain?
Virheilmoituksen syyt
Self_signed_cert_in_chain tarkoittaa, että ketjussa on itse allekirjoitettu varmenne, jota ei ole luotetun varmenteenantajan myöntämä (Inventive HQ (tekninen tukisivusto)). Tämä voi tapahtua, jos palvelimelle on asennettu itse allekirjoitettu varmenne päätevarmenteen sijaan tai jos ketjuun on lisätty juurivarmenne, jota selain ei tunnista.
Vaikutukset selaimen luottamukseen
Selain, kuten Chrome tai Firefox, näyttää tällöin varoituksen, koska itse allekirjoitettua varmennetta ei ole luottamusvarastossa. Käyttäjä ei voi tietää, onko yhteys turvallinen, ja monet sivustot menettävät liikennettä, kun varoitus ilmestyy.
Tämä virhe ei tarkoita, että palvelinvarmenne olisi viallinen – se ongelma on ketjun koostumuksessa. Älä turhaan uusi varmennetta; korjaa ketju oikein.
Siksi virheen kohdalla kannattaa katsoa ketjun rakennetta, ei pelkästään varmenteen voimassaoloa.
Miten korjata self_signed_cert_in_chain?
Korjaus vaiheittain
- Lataa oikeat välivarmenteet varmenteenantajan verkkosivustolta. (Inventive HQ)
- Luo fullchain-tiedosto yhdistämällä lehtivarmenne ja välivarmenteet oikeassa järjestyksessä:
cat server.crt intermediate.crt > fullchain.crt(DNSimple-tuki) - Määritä web-palvelin käyttämään fullchain-tiedostoa. NGINX:
ssl_certificate /path/to/fullchain.crt;Apache:SSLCertificateFile /path/to/fullchain.crt(DNSimple-tuki) - Käynnistä palvelin uudelleen ja testaa ketju
openssl s_client-komennolla. (OneUptime-opas)
Varmenneketjun oikea järjestys
Ketju on asennettava oikeassa järjestyksessä: päätevarmenne ensin, sitten väli- tai välivarmenteet, ja viimeisenä juurivarmenne (jos se sisällytetään). (DNSimple-tuki) Useimmissa tapauksissa juurivarmennetta ei tarvitse sisällyttää, koska se on jo asiakkaan luottamusvarastossa. (DNSimple-tuki)
Miten voin tarkastella varmenteen ketjua?
Tarkastelu selaimella
Chromessa ja Firefoxissa voit tarkastella ketjua napsauttamalla lukkokuvaketta osoiterivillä ja valitsemalla “Varmenteen tiedot” tai “Lisätietoja”. (DNSimple-tuki) Siellä näkyy koko ketju päätevarmenteesta juureen.
Tarkastelu komentorivillä
Komentorivillä käytä openssl s_client -connect example.com:443 -showcerts. Tämä komento näyttää täsmälleen sen ketjun, jonka palvelin lähettää. (DNSimple-tuki (varmenteenantajan tukisivu)) Älä luota pelkästään selaimeen – palvelin saattaa lähettää eri ketjun kuin mitä selain näyttää. (OneUptime-valvontapalvelu)
Miten voin luoda varmenteen ketjun?
Varmenneketjun luominen palvelimella
Ketju luodaan yhdistämällä päätevarmenne, välivarmenteet ja juurivarmenne tiedostoksi. (DNSimple-tuki) Tiedosto on oltava PEM-muodossa, jossa jokainen varmenne on oma -----BEGIN CERTIFICATE----- -lohkonsa.
Esimerkki OpenSSL:llä
Komennolla cat server.crt intermediate.crt root.crt > chain.crt saat luotua ketjun, kun tiedostot ovat oikeassa järjestyksessä. (Authgear-ohje (tekninen blogi)) Let’s Encryptin tapauksessa ketjussa on kaksi lohkoa: lehtivarmenne ja yksi välivarmenne.
Pitääkö varmenteen ketjun sisältää juurivarmenne?
Käytäntö ja vaatimukset
Useimmissa tapauksissa juurivarmennetta ei tarvitse sisällyttää ketjuun, koska se on jo asiakkaan luottamusvarastossa. (DNSimple-tuki) Poikkeuksena voivat olla vanhat järjestelmät, joissa juurivarmennetta ei ole ennalta asennettu.
Vaikutus yhteensopivuuteen
Juurivarmenteen lisääminen voi parantaa yhteensopivuutta vanhojen järjestelmien kanssa, mutta se voi myös aiheuttaa self_signed_cert_in_chain -virheen, jos sitä ei ole luotettu. (USAVPS-ohje)
Miten voin validoida varmenteen ketjun?
Validointi selaimella
Klikkaa lukkokuvaketta ja valitse “Varmenteen tiedot” – selain näyttää ketjun ja varmentaa jokaisen varmenteen allekirjoituksen. (DNSimple-tuki)
Validointi työkaluilla
Komentorivillä openssl verify -CAfile root.pem -untrusted intermediate.pem yourdomain.crt tarkistaa, että ketju on täydellinen. (OneUptime-opas (tekninen dokumentaatio)) SSL Labs Server Test -työkalu on kätevä ulkoinen tarkistus, joka paljastaa ketjuongelmat. (DNSimple-tuki)
Käytännön päätelmä: nopein tapa löytää piilotettu ketjuvirhe on tarkistaa palvelimen lähettämä ketju, ei selaimen näkymää.
”Väli- ja juurivarmenteet muodostavat luottoketjun, joka yhdistää palvelimen varmenteen luotettuun juurivarmenteeseen.”
DigiCert-dokumentaatio (varmenteenantajan ohjeistus)
”SSL-varmenteen ketju linkittää palvelimen varmenteen luotettuun juurivarmenteeseen – ilman tätä ketjua selain ei voi luottaa.”
DNSimple-ohje (varmenteenantajan tukisivu)
sslnudge.com, toolhq.io, certnotify.com, certwatch.app, securebin.ai, visualsentinel.com
Usein kysytyt kysymykset
Mikä on SSL-varmenteen ketjun tarkoitus?
Sen tarkoitus on muodostaa luottoketju palvelimen varmenteesta luotettuun juurivarmenteeseen, jotta selain voi tarkistaa varmenteen aitouden.
Mitä eroa on pääte-, väli- ja juurivarmenteella?
Päätevarmenne on palvelimen oma varmenne, välivarmenne sitoo päätevarmenteen juurivarmennetta lähimmäksi, ja juurivarmenne on luottamuksen ankkuri, jonka varmenteenantaja on itse allekirjoittanut.
Kuinka usein SSL-varmenteen ketju päivitetään?
Ketju päivitetään aina, kun varmenteita uusitaan – tyypillisesti 1–3 vuoden välein riippuen varmenteenantajan käytännöstä.
Miksi selain näyttää varoitusta varmenteen ketjusta?
Selain varoittaa, jos ketju on epätäydellinen, järjestys on väärä tai ketjussa on itse allekirjoitettu varmenne, jota selain ei tunnista.
Voiko SSL-varmenteen ketju olla liian pitkä?
Kyllä, liian pitkä ketju (yli 4–5 varmennetta) voi hidastaa yhteyttä ja aiheuttaa yhteensopivuusongelmia vanhemmissa laitteissa.
Mitä tehdä, jos varmenneketju on epätäydellinen?
Lataa oikeat välivarmenteet varmenteenantajalta, luo fullchain-tiedosto oikeassa järjestyksessä ja asenna se palvelimelle.
SSL-varmenteen ketju on kuin digitaalinen luottoketju – jokaisen lenkin on oltava paikallaan, jotta yhteys on turvallinen. Suomen verkkokauppiaille ja palvelinpäättäjille: tarkista ketju säännöllisesti openssl-työkaluilla, tai menetät asiakkaiden luottamuksen heti ensimmäisellä varoituksella.