SSLmentor

Certificati TLS/SSL di qualità per siti web e progetti su internet.

ACME

ACME

ACME

Il protocollo ACME (Automatic Certificate Management Environment) è uno standard internet aperto che consente l'emissione, il rinnovo e la revoca completamente automatizzati dei certificati SSL. Grazie ad ACME, i server web possono richiedere autonomamente i certificati e rinnovarli automaticamente senza l'intervento manuale dell'amministratore. Le implementazioni dei client ACME automatizzano e semplificano notevolmente la gestione dei certificati in un momento in cui i nuovi standard stanno progressivamente riducendo la validità dei certificati SSL/TLS a un massimo di 47 giorni entro il 2029.

Cos'è il protocollo ACME?

ACME è un protocollo definito nella RFC 8555 (pubblicata nel 2019), che standardizza la comunicazione tra un client (server web o strumento di gestione dei certificati) e un'autorità di certificazione (CA). È stato originariamente progettato e diffuso dall'autorità di certificazione Let's Encrypt, che emette certificati DV gratuiti tramite ACME.

Il protocollo funziona secondo il principio challenge – response: il client dimostra all'autorità di certificazione (CA) di controllare effettivamente il dominio per il quale richiede un certificato. In caso di verifica riuscita, la CA emette automaticamente il certificato. L'intero processo richiede pochissimo tempo.

La sigla ACME sta per Automatic Certificate Management Environment.

Come funziona ACME?

La comunicazione tra il client ACME e l'autorità di certificazione (CA) avviene esclusivamente tramite HTTP REST API. Il client e la CA si scambiano messaggi in formato JSON. L'intero processo può essere riassunto nei seguenti passaggi.

  • Attivazione dell'account – Il client ACME si connette alla CA utilizzando le credenziali EAB (external account binding). Invia il Key identifier (KID) e la chiave HMAC.
  • Richiesta del certificato (Order) – Il client invia alla CA un elenco dei domini per i quali richiede un certificato. La CA restituisce un elenco di challenge che il client deve completare per ciascun dominio.
  • Completamento della challenge (Challenge) – Il client sceglie uno dei tipi di challenge offerti (HTTP-01, DNS-01, TLS-ALPN-01) ed esegue l'azione richiesta – colloca un token sul server o imposta un record DNS.
  • Verifica da parte della CA – La CA verifica automaticamente se la challenge è stata completata (visita l'URL, verifica il record DNS, ecc.). Una verifica riuscita conferma l'autorizzazione del dominio.
  • Emissione del certificato – Il client invia una richiesta di certificato (CSR). La CA firma il certificato e lo restituisce al client in formato PEM.
  • Rinnovo automatico – Il client ACME imposta il rinnovo periodico nella propria configurazione. Il certificato viene solitamente rinnovato con sufficiente anticipo rispetto alla scadenza per evitare interruzioni dell'HTTPS.

Tipi di challenge ACME

Affinché l'autorità di certificazione (CA) possa verificare che il richiedente controlli effettivamente il dominio, il protocollo ACME offre tre tipi standardizzati di challenge:

HTTP-01

Il client ACME colloca un file speciale (token) sul server web nella directory /.well-known/acme-challenge/. La CA ne verifica quindi la disponibilità tramite HTTP sulla porta 80. Questo è il metodo di verifica più utilizzato.

Limitazioni: Non funziona per i certificati WildCard. Il dominio deve essere accessibile pubblicamente sulla porta 80.

DNS-01

Il client crea uno speciale record TXT nel DNS del dominio nella forma _acme-challenge.domenaxyz.cz con un token univoco fornito dalla CA. La CA verifica il record tramite DNS. Questo metodo di verifica consente di ottenere un certificato WildCard.

Limitazioni: Richiede l'accesso ai record DNS del dominio. Può essere più lento a causa della propagazione delle modifiche DNS.

TLS-ALPN-01

La verifica avviene tramite TLS sulla porta 443 utilizzando l'estensione ALPN (Application-Layer Protocol Negotiation). Il client rende temporaneamente disponibile uno speciale certificato con il token ACME.

Limitazioni: Può risultare complicato per alcuni ambienti di hosting.

Client ACME – panoramica degli strumenti

Esiste un'ampia gamma di strumenti pronti all'uso per lavorare con il protocollo ACME.

Certbot

Il client ACME più popolare, sviluppato da EFF.org. Integrazione automatica con Apache e Nginx. Supporto per Linux e macOS. Certbot è uno strumento molto diffuso e ben documentato che offre comandi semplici per ottenere e rinnovare i certificati. Dispone inoltre di un ampio supporto per vari server web e ambienti di hosting.

acme.sh

Un client ACME minimalista scritto in shell con supporto per oltre 150 provider DNS. Linux, macOS, FreeBSD. acme.sh punta sulla semplicità e su un'ampia compatibilità.

win-acme

Un client ACME per Windows con integrazione IIS. Supporta sia l'interfaccia grafica sia la riga di comando. win-acme è ideale per gestire i certificati sui server Windows, in particolare con IIS.

Lego

Un client ACME scritto in Go. Adatto per l'integrazione personalizzata e lo scripting. Lego è un client ACME flessibile che può essere facilmente integrato in sistemi e script personalizzati grazie alla sua implementazione nel linguaggio Go.

Torna alla Guida
Hai trovato un errore o non capisci qualcosa? Scrivici!

CA Sectigo
CA RapidSSL
CA Thawte
CA GeoTrust
CA DigiCert
CA Certum