Cryptology Academy · Lezione

Let's Encrypt e automazione del protocollo ACME

Automatizzi l'emissione e il rinnovo dei certificati usando il protocollo ACME con Certbot e altri client.

Lezione 4 di 413 passaggi

Let's Encrypt e automazione del protocollo ACME è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Introduzione a Let's Encrypt

Let's Encrypt è un'autorità di certificazione (CA) gratuita, automatizzata e open source, gestita dall'Internet Security Research Group (ISRG) e lanciata in versione beta pubblica nel dicembre 2015. Ha emesso oltre 3 miliardi di certificati e ha aumentato significativamente l'adozione di HTTPS sul web, eliminando i costi e la complessità associati all'ottenimento di certificati TLS riconosciuti pubblicamente.

Panoramica del protocollo ACME

Il protocollo Automated Certificate Management Environment (ACME), standardizzato come RFC 8555 nel 2019, definisce il modo in cui i client dimostrano automaticamente la titolarità di un dominio e ricevono certificati dalle CA. ACME sostituisce i processi manuali di convalida del dominio con uno scambio automatizzato verificato crittograficamente, consentendo la gestione senza intervento manuale dell'intero ciclo di vita dei certificati.

Challenge HTTP-01

La challenge HTTP-01 convalida la titolarità del dominio richiedendo al client ACME di inserire un file token specifico all'indirizzo "http://DOMAIN/.well-known/acme-challenge/TOKEN". La CA recupera questo URL per verificare il token. HTTP-01 è semplice da implementare, ma richiede che la porta 80 sia accessibile e non può essere utilizzata per i certificati wildcard.

Challenge DNS-01

La challenge DNS-01 convalida la titolarità del dominio richiedendo al client ACME di creare un record DNS TXT all'indirizzo "_acme-challenge.DOMAIN" con un valore specifico. La CA interroga il DNS per verificare il record. DNS-01 è l'unico tipo di challenge che supporta l'emissione di certificati wildcard ("*.example.com") e funziona anche quando i server web si trovano dietro firewall.

Challenge TLS-ALPN-01

La challenge TLS-ALPN-01 convalida la titolarità del dominio a livello TLS utilizzando un identificatore di protocollo ALPN personalizzato, "acme-tls/1". Il client ACME fornisce temporaneamente un certificato autofirmato con il token della challenge in un'estensione speciale sulla porta 443. Questa challenge funziona senza un server web attivo e supporta gli ambienti con bilanciamento del carico.

Client di riferimento Certbot

Certbot è il client ACME di riferimento della Electronic Frontier Foundation per Let's Encrypt. Automatizza l'intero ciclo di vita dei certificati: convalida del dominio, emissione del certificato e rinnovo automatico. Certbot include plugin per Apache e nginx che configurano automaticamente le impostazioni TLS. Installi il programma tramite "snap install --classic certbot" nelle moderne distribuzioni Linux.

Client ACME alternativi

Esistono molti client ACME oltre a Certbot, destinati a diversi casi d'uso. acme.sh è un client ACME costituito esclusivamente da uno script shell, ampiamente utilizzato negli ambienti leggeri. Il server web Caddy integra ACME e rinnova automaticamente i certificati. Traefik, utilizzato negli ambienti containerizzati, gestisce ACME tramite la configurazione certificatesResolvers per i carichi di lavoro containerizzati.

Automazione del rinnovo dei certificati

I certificati Let's Encrypt hanno intenzionalmente un periodo di validità di 90 giorni, così da incoraggiare l'automazione e ridurre il periodo di esposizione delle chiavi private compromesse. Certbot installa un timer systemd o un processo cron che esegue "certbot renew" due volte al giorno, rinnovando ogni certificato la cui scadenza è prevista entro 30 giorni. Il rinnovo manuale è un anti-pattern che causa interruzioni del servizio.

Limiti di frequenza di Let's Encrypt

Let's Encrypt applica limiti di frequenza per prevenire gli abusi. I limiti principali sono 50 certificati per dominio registrato alla settimana e 5 certificati duplicati alla settimana. Anche i tentativi di convalida falliti, 5 per hostname all'ora, sono soggetti a limiti di frequenza. Durante lo sviluppo, l'ambiente di staging di Let's Encrypt offre un'emissione illimitata di certificati tramite una CA di test che non è considerata attendibile pubblicamente.

Certificati multidominio e wildcard

Un singolo certificato ACME può coprire più domini (Subject Alternative Names). "certbot --domains example.com,www.example.com,api.example.com" emette un certificato con tre SAN. I certificati wildcard ("*.example.com") richiedono la convalida DNS-01 e coprono tutti i sottodomini di un solo livello. I wildcard non coprono il dominio radice (example.com), che deve quindi essere aggiunto come SAN aggiuntivo.

ACME per la PKI interna

Il protocollo ACME non è limitato a Let's Encrypt. Le CA interne come Step-CA (smallstep), EJBCA e HashiCorp Vault possono esporre endpoint ACME per automatizzare i certificati interni. In questo modo, la stessa gestione automatizzata del ciclo di vita dei certificati utilizzata per i servizi pubblici può essere applicata all'infrastruttura mTLS interna e ai servizi privati.

Verifica delle challenge ACME

Quale tipo di challenge ACME è necessario per emettere un certificato wildcard come "*.example.com"?

Riepilogo della lezione: Let's Encrypt e ACME

Let's Encrypt fornisce certificati gratuiti tramite il protocollo ACME (RFC 8555). Le challenge HTTP-01 funzionano per i certificati non wildcard sulla porta 80. DNS-01 abilita i certificati wildcard dimostrando il controllo della zona DNS. TLS-ALPN-01 funziona senza un server web. Certbot e acme.sh automatizzano l'intero ciclo di vita. I certificati di 90 giorni richiedono l'automazione. I limiti di frequenza rendono necessario utilizzare l'ambiente di staging durante i test.

Gratis per iniziare

Impara Cryptology Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
67
Lezioni
261

Domande Frequenti

La lezione «Let's Encrypt e automazione del protocollo ACME» è gratuita?

Sì — il testo completo di «Let's Encrypt e automazione del protocollo ACME» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Let's Encrypt e automazione del protocollo ACME»?

Automatizzi l'emissione e il rinnovo dei certificati usando il protocollo ACME con Certbot e altri client. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Let's Encrypt e automazione del protocollo ACME»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti della riga di comando di OpenSSL
  2. Creazione e gestione delle catene di certificati
  3. OCSP Stapling e Certificate Transparency
  4. Let's Encrypt e automazione del protocollo ACME
← Torna a Cryptology Academy