Hogyan működik

Utoljára frissítve:

A Let’s Encrypt és az ACME protokoll célja, hogy lehetővé tegye egy HTTPS-kiszolgáló beállítását, és azt, hogy az automatikusan, emberi beavatkozás nélkül kapjon egy böngésző által megbízhatónak ítélt tanúsítványt. Ehhez a webszerveren egy tanúsítványkezelő agentet kell futtatni.

A technológia működésének megértéséhez menjünk végig a https://example.com/ beállításának folyamatán egy Let’s Encryptet támogató tanúsítványkezelő agent segítségével.

Ez a folyamat két lépésből áll. Először az agent biztosítja a tanúsító hatóságot arról, hogy egy domain a webszerver irányítása alá tartozik. Ezután az ügynök kérvényezhet, megújíthat és visszavonhat tanúsítványokat az adott domainhez.

Domain validálás

A Let’s Encrypt a publikus kulcs alapján azonosítja a szerveradminisztrátort. Amikor az agent először lép kapcsolatba a Let’s Encrypttel, új kulcspárt generál, és bizonyítja a Let’s Encrypt tanúsító hatóságnak, hogy a szerver egy vagy több domain felett rendelkezik. Ez hasonló a hagyományos tanúsító hatóság folyamatához, amelynek során fiókot hoz létre és domaineket ad hozzá a fiókhoz.

A folyamat elindításához az agent megkérdezi a Let’s Encrypt tanúsító hatóságot, hogy mit kell tennie annak érdekében, hogy bizonyítsa az example.com felett való rendelkezését. A Let’s Encrypt tanúsító hatóság megvizsgálja a kért domainnevet, és egy vagy több feladatot (kihívást) bocsát ki. Ezek különböző módjai annak, hogy az agent bizonyíthassa a domain felett való rendelkezését. Például, a tanúsító hatóság a következő választást ajánlhatja fel az agent számára:

A Let’s Encrypt tanúsító hatóság a kihívásokkal egyidejűleg egy nonce-t is kibocsát, amelyet az ügynöknek alá kell írnia a privát kulcspárjával, ezzel bizonyítva, hogy ő rendelkezik a kulcspárral.

Requesting challenges to validate example.com

Az agent teljesíti a megadott kihívások egyikét. Tegyük fel, hogy teljesíti a fent említett második feladatot: létrehoz egy fájlt egy megadott elérési útvonalon a http://example.com oldalon. Az agent a privát kulcsával is aláírja a megadott nonce-t. Miután az agent elvégezte ezeket a lépéseket, értesíti a tanúsító hatóságot, hogy készen áll a validálás befejezésére.

Ezután a tanúsító hatóság feladata, hogy ellenőrizze, hogy a kibocsátott feladatok teljesültek-e. A tanúsító hatóság ellenőrzi a nonce aláírását, majd megpróbálja letölteni a fájlt a webszerverről, és meggyőződik arról, hogy az az elvárt tartalommal rendelkezik.

Requesting authorization to act for example.com

Ha a nonce aláírása érvényes, és a feladatok ellenőrizve vannak, akkor a publikus kulcs által azonosított agent jogosult a example.com tanúsítványkezelésére. Az agent által használt kulcspárt “engedélyezett kulcspárnak” (authorized key pair-nek) nevezzük a example.com számára.

Tanúsítvány kiállítása és visszavonása

Miután az agent már rendelkezik egy engedélyezett kulcspárral, a tanúsítványok igénylése, megújítása és visszavonása egyszerű - csak tanúsítványkezelési üzeneteket kell küldeni, és azokat az engedélyezett kulcspárral aláírni.

A domain tanúsítványának megszerzéséhez az agent létrehoz egy PKCS#10 Tanúsítvány-aláírási kérelmet, amely arra kéri a Let’s Encrypt tanúsító hatóságot, hogy állítson ki egy tanúsítványt az example.com számára egy megadott publikus kulccsal. A CSR a szokásos módon tartalmazza a CSR-ben szereplő publikus kulcshoz tartozó privát kulccsal történő aláírást. Az agent a teljes CSR-t is aláírja a example.com engedélyezett kulcsával, hogy a Let’s Encrypt tanúsító hatóság tudja, hogy az engedélyezett.

Amikor a Let’s Encrypt tanúsító hatóság megkapja a kérelmet, mindkét aláírást ellenőrzi. Ha minden rendben van, kiállít egy tanúsítványt a example.com számára a CSR nyilvános kulcsával, és visszaküldi azt az agentnek.

Requesting a certificate for example.com

A visszavonás hasonló módon működik. Az agent aláír egy visszavonási kérelmet a example.com számára engedélyezett kulcspárral, és a Let’s Encrypt tanúsító hatóság ellenőrzi, hogy a kérelem engedélyezett. Ha igen, akkor a visszavonási információkat közzéteszi a szokásos visszavonási csatornákon (pl. OCSP), hogy az erre hagyatkozó felek, például a böngészők tudhassák, hogy nem szabad elfogadniuk a visszavont tanúsítványt.

Requesting revocation of a certificate for example.com