ACME Protocol
Il protocollo ACME (Automatic Certificate Management Environment) è un protocollo per automatizzare le interazioni tra le Certification Authorities ed i web server degli utenti, permettendo la generazione e il deploy dei certificati digitali in maniera semplice ed economica.
Il protocollo ACME è un protocollo mantenuto da IETF e promosso da Internet Security Research Group che mette a disposizione un servizio di Certification Authority gratuito per la generazione di certificati digitali del tipo Domain Validation.
Questo servizio chiamato Let's Encrypt è generalmente associato al protocollo ACME.
Il protocollo ACME prevede vari meccanismi per il rilascio di un certificato digitale per la validazione di dominio dv. Il meccanismo solitamente usato è chiamato http challenge, in cui:
Creata una chiave privata viene generato un CSR, certificate signing request contenente un nome di dominio valido.
Il CSR viene spedito al servizio di CA Let's Encrypt.
La CA chiede di pubblicare nel dominio specificato dalla CSR un file contente una chiave. Questa chiave deve essere raggiungibile da una url sempre indicata dal servizio.
Una volta eseguita la pubblicazione, il servizio di CA verifica l'esistenza della chiave.
Se l'esito è positivo, la CA spedisce il certificato che può essere pubblicato.
Figura 1 HTTP Challenge, fonte https://letsencrypt.org/how-it-works
Figura 2 HTTP Challenge, fonte https://letsencrypt.org/how-it-works
Oplon Global Distributed Gateway e ACME
Oplon Global Distributed Gateway in quanto ADC terminatore di SSL ed SSL Offloading si trova nella posizione ideale per l'applicazione del protocollo ACME e del HTTP Challenge.
Figura 3 HTTP Challenge con Oplon ADC
Per poter usufruire di questa funzionalità è necessario attivare un regola di rewrite.
La regola intercetta le richieste di verifica della CA e risponde con la chiave corretta del dominio da validare.
Oplon CSR ACME Setup
Per poter usufruire della funzionalità di generazione di certificati digitali attraverso il protocollo ACME, è necessario attivare la regola di rewrite LBLHttpAcmeChallengeCsr nel modulo ADC attraverso il quale è erogato il dominio da validare.
Attraverso il menu ADC Settings selezionare Rewrite management e poi Rewrite header rules.
Figura 4 ADC Settings > Rewrite manament > Rewrite header rules
Attraverso il campo search, cercare la regola LBLHttpAcmeChallengeCsr.
È sufficiente usare "acme" come filtro.
Figura 5 ricerca di LBLHttpAcmeChallengeCsr, usando acme come filtro.
Selezionare la regola LBLHttpAcmeChallengeCsr di un qualsiasi modulo template e copiarla nel modulo di bilanciamento che eroga i servizi del dominio da validare.
A questo punto si deve applicare la regola al modulo di bilanciamento.
Attraverso il menu ADC Settings, selezionare ADCs.
Figura 6 ADC Settings > ADCs
Entrare nella maschera di configurazione del modulo ADC
Aperto il pannello Default rewrite rules, nel parametro rewriteHeaderRules LBLHttpAcmeChallengeCsr.
Figura 7 Inserimento della regola LBLHttpAcmeChallengeCsr nelle regole di rewrite di default di un ADC
Salvare le modifiche e reinizializzare il modulo ADC usando i link in alto a destra.
Figura 8 Link di segnalazione di salvatagggio e reinizializzazione
Generazione certificato SSL
Attraverso il menu selezionare Files e poi Keystore.
Figura 9 Menu Files > Keystores per ottenere l'elenco dei keystore presenti
La vista elenca tutti i keystore, contenitori dei certificati digitali.
Selezionare il keystore corretto e premere il pulsante di editazione.
Per l'editazione è necessario inserire la password del keystore.
Figura 10 Inserimento password per keystore.
Per generare un nuovo certificato premere il tasto new
Per la domain validation è sufficiente inserire nel campo CN (common name) il nome del dominio.
Inserire nel campo alias password la stessa password digitata per il keystore.
Figura 11 Creazione nuovo certificato. CN e Alias password sono obbligatori
Il nuovo certificato è inserito nel keystore.
Il nome dell'issuer del certificato e uguale al nome del dominio inserito. Il certificato infatti non è ancora firmato dalla CA.
Figura 12 Subject e Issuer coincidono nei certificati non firmati dalla CA.
Per la generazione e l'invio del CSR è sufficiente selezionare il certificato creato e premere il pulsante di generazione CSR
Figura 13 Generazione ed invio CSR a Let's Encrypt per la firma del certificato
È necessario inserire l'alias password per l'invio.
Figura 14 Inserimento alias password
Il certificato è firmato.
Figura 15 CSR avvenuta correttamente.
Figura 16 Il nome dell'issuer corrisponde al nome della CA
Salvare il keystore attraverso il pulsante save per confermare le modifiche.