Cryptology Academy · Oppitunti

Let's Encrypt ja ACME-protokollan automatisointi

Automatisoikaa varmenteiden myöntäminen ja uusiminen ACME-protokollan avulla käyttäen Certbotia ja muita asiakasohjelmia.

Oppitunti 4/413 vaihetta

Let's Encrypt ja ACME-protokollan automatisointi on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cryptology Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.

Let's Encryptin esittely

Let's Encrypt on Internet Security Research Groupin (ISRG) ylläpitämä ilmainen, automaattinen ja avoin varmenneviranomainen, joka käynnistettiin julkisena beetaversiona joulukuussa 2015. Se on myöntänyt yli 3 miljardia varmennetta ja lisännyt HTTPS:n käyttöä verkossa huomattavasti poistamalla julkisesti luotettujen TLS-varmenteiden hankkimiseen liittyvät kustannukset ja monimutkaisuuden.

ACME-protokollan yleiskatsaus

Automated Certificate Management Environment (ACME) -protokolla, joka standardisoitiin vuonna 2019 RFC 8555:ssä, määrittelee, miten asiakkaat todistavat verkkotunnuksen hallinnan automaattisesti ja vastaanottavat varmenteita varmenneviranomaisilta. ACME korvaa manuaaliset verkkotunnuksen validointiprosessit kryptografisesti varmennetulla automaattisella vaihdolla, mikä mahdollistaa varmenteiden elinkaaren hallinnan ilman manuaalisia toimia.

HTTP-01-haaste

HTTP-01-haaste varmistaa verkkotunnuksen hallinnan edellyttämällä, että ACME-asiakas sijoittaa tietyn tunnistetiedoston osoitteeseen "http://DOMAIN/.well-known/acme-challenge/TOKEN". Varmenneviranomainen noutaa tämän URL-osoitteen tunnisteen tarkistamista varten. HTTP-01 on helppo toteuttaa, mutta se edellyttää portin 80 olevan käytettävissä, eikä sitä voi käyttää jokerimerkkivarmenteisiin.

DNS-01-haaste

DNS-01-haaste varmistaa verkkotunnuksen hallinnan edellyttämällä, että ACME-asiakas luo DNS TXT -tietueen osoitteeseen "_acme-challenge.DOMAIN" ja määrittää sille tietyn arvon. Varmenneviranomainen kyselyttää DNS:ää tietueen tarkistamista varten. DNS-01 on ainoa haastetyyppi, joka tukee jokerimerkkivarmenteiden myöntämistä ("*.example.com"), ja se toimii myös silloin, kun verkkopalvelimet ovat palomuurien takana.

TLS-ALPN-01-haaste

TLS-ALPN-01-haaste varmistaa verkkotunnuksen hallinnan TLS-tasolla käyttämällä mukautettua ALPN-protokollatunnistetta "acme-tls/1". ACME-asiakas tarjoaa portissa 443 tilapäisesti itse allekirjoitetun varmenteen, jonka erityiseen laajennukseen on sisällytetty haasteen tunniste. Tämä haaste toimii ilman käynnissä olevaa verkkopalvelinta ja tukee kuormantasausympäristöjä.

Certbot-viiteasiakas

Certbot on Electronic Frontier Foundationin viite-ACME-asiakas Let's Encryptille. Se automatisoi koko varmenteen elinkaaren: verkkotunnuksen validoinnin, varmenteen myöntämisen ja automaattisen uusimisen. Certbot sisältää Apache- ja nginx-laajennukset, jotka määrittävät TLS-asetukset automaattisesti. Asentakaa se nykyaikaisissa Linux-jakeluissa komennolla "snap install --classic certbot".

Vaihtoehtoiset ACME-asiakkaat

Certbotin lisäksi on olemassa monia eri käyttötarkoituksiin sopivia ACME-asiakkaita. acme.sh on pelkkä shell-komentosarja-ACME-asiakas, jota käytetään laajalti kevyissä ympäristöissä. Caddy-verkkopalvelimessa on sisäänrakennettu ACME-tuki, ja se uusii varmenteet automaattisesti. Konttiympäristöissä käytettävä Traefik käsittelee ACME:n certificatesResolvers-määrityksensä kautta kontitetuille työkuormille.

Varmenteiden uusimisen automatisointi

Let's Encrypt -varmenteiden voimassaoloaika on tarkoituksella 90 päivää, mikä kannustaa automatisointiin ja pienentää vaarantuneiden yksityisten avainten aiheuttamaa altistusaikaa. Certbot asentaa systemd-ajastimen tai cron-työn, joka suorittaa komennon "certbot renew" kaksi kertaa päivässä ja uusii kaikki varmenteet, joiden vanhenemiseen on enintään 30 päivää. Manuaalinen uusiminen on huono käytäntö, joka johtaa käyttökatkoihin.

Let's Encryptin nopeusrajoitukset

Let's Encrypt käyttää nopeusrajoituksia väärinkäytösten estämiseksi. Tärkeimmät rajoitukset ovat 50 varmennetta rekisteröityä verkkotunnusta kohden viikossa ja 5 päällekkäistä varmennetta viikossa. Myös epäonnistuneita validointiyrityksiä rajoitetaan (5 isäntänimeä kohden tunnissa). Kehityksen aikana Let's Encryptin staging-ympäristö tarjoaa rajattoman varmenteiden myöntämisen testivarmenneviranomaista vastaan; tämä varmenneviranomainen ei ole julkisesti luotettu.

Monialue- ja jokerimerkkivarmenteet

Yksi ACME-varmenne voi kattaa useita verkkotunnuksia (Subject Alternative Names). "certbot --domains example.com,www.example.com,api.example.com" myöntää varmenteen, jossa on kolme SAN-tunnistetta. Jokerimerkkivarmenteet ("*.example.com") edellyttävät DNS-01-validointia ja kattavat kaikki yhden tason aliverkkotunnukset. Jokerimerkit eivät kata juuriverkkotunnusta (example.com) itseään, joten varmenteeseen on lisättävä ylimääräinen SAN-tunniste.

ACME sisäisessä PKI:ssa

ACME-protokolla ei rajoitu Let's Encryptiin. Step-CA:n (smallstep), EJBCA:n ja HashiCorp Vaultin kaltaiset sisäiset varmenneviranomaiset voivat tarjota ACME-päätepisteitä sisäisten varmenteiden automatisointia varten. Näin julkisesti näkyville palveluille käytettyä samaa varmenteiden automaattista elinkaaren hallintaa voidaan soveltaa sisäiseen mTLS-infrastruktuuriin ja yksityisiin palveluihin.

ACME-haasteita koskeva tarkistus

Mikä ACME-haastetyyppi vaaditaan jokerimerkkivarmenteen, kuten "*.example.com", myöntämiseen?

Oppitunnin yhteenveto: Let's Encrypt ja ACME

Let's Encrypt tarjoaa ilmaisia varmenteita ACME-protokollan (RFC 8555) avulla. HTTP-01-haasteet toimivat muille kuin jokerimerkkivarmenteille portissa 80. DNS-01 mahdollistaa jokerimerkkivarmenteet todistamalla DNS-alueen hallinnan. TLS-ALPN-01 toimii ilman verkkopalvelinta. Certbot ja acme.sh automatisoivat koko elinkaaren. 90 päivän varmenteet edellyttävät automatisointia. Nopeusrajoitusten vuoksi testauksessa on käytettävä staging-ympäristöä.

Aloita maksutta

Opi Cryptology Academy tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
67
Oppitunnit
261

Usein kysytyt kysymykset

Onko oppitunti ”Let's Encrypt ja ACME-protokollan automatisointi” ilmainen?

Kyllä – oppitunnin ”Let's Encrypt ja ACME-protokollan automatisointi” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cryptology Academy-kurssin, päivitä CoddyKit PROhon. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Let's Encrypt ja ACME-protokollan automatisointi”?

Automatisoikaa varmenteiden myöntäminen ja uusiminen ACME-protokollan avulla käyttäen Certbotia ja muita asiakasohjelmia. Harjoittelet Cryptology Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cryptology Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cryptology Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Let's Encrypt ja ACME-protokollan automatisointi”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Cryptology Academy-oppitunnilla?

Kyllä. Jokainen Cryptology Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. OpenSSL-komentorivin perusteet
  2. Varmenneketjujen luominen ja hallinta
  3. OCSP Stapling ja Certificate Transparency
  4. Let's Encrypt ja ACME-protokollan automatisointi
← Takaisin: Cryptology Academy