- Guide e supporto | Shellrent - https://guide.shellrent.com -

Come ottenere un certificato LetsEncrypt con il plugin di Certbot di Shellrent

Tempo di lettura: 2 minuti
Aggiornata 9 mesi fa

In questo articolo vi spieghiamo come ottenere un certificato LetsEncrypt per un qualsiasi puntamento di un dominio gestito tramite il nostro servizio utilizzando il plugin di Certbot di Shellrent.

Per prima cosa assicuratevi di aver installato python3, python3-pip e certbot (o python2 e python2-pip, dipendentemente dalla distribuzione sulla quale state lavorando) con il comando:

apt-get install python3 python3-pip -y

Una volta installati i pacchetti installate Certbot e il plugin di Certbot di Shellrent tramite pip:

pip3 install certbot zope certbot-dns-shellrent --user

Una volta installati, controllate che il plugin certbot-dns-shellrent sia presente tramite il seguente comando. Se non viene visualizzato significa che non è stato installato correttamente:

pip3 list | grep shellrent
certbot-dns-shellrent 0.1.1

Prima di procedere alla richiesta di certificato è necessario generare (o recuperare, in caso lo abbiate già creato) il token API. Di seguito la documentazione che spiega come fare: https://api.shellrent.com/token-e-accesso [1]

Prima di recuperare/creare il token è necessario aggiungere tutti gli IP da cui sarà lanciata la richiesta di certificazione tra gli IP autorizzati tramite pannello manager, di seguito una guida che spiega come fare: https://guide.shellrent.com/controllo-degli-accessi-tramite-ip/ [2]

Una volta in possesso del vostro nome utente e del token, create un file .ini all’interno del vostro server , e inserite i seguenti parametri sostituendo ovviamente il nome utente e il token con quelli in vostro possesso:

dns_shellrent_username = usr00000
dns_shellrent_token = aaaaaaaaabbbbbbbbbbcccccccccccdddddddddddd000009999999999
dns_shellrent_endpoint = https://manager.shellrent.com/api2

Modificate i permessi del file impostandoli a 600 con il seguente comando:

chmod 600 /percorso/al/file.ini

Se volete effettuare una richiesta di certificazione di test lanciate il seguente comando con la flag –test-cert, che effettua una di richiesta di certificazione per *.vostrodominio.tld (wildcard) :

certbot certonly --authenticator dns-shellrent --dns-shellrent-credentials /percorso/al/file.ini --dns-shellrent-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory --agree-tos --rsa-key-size 4096 -d '*.vostrodominio.tld' --test-cert

Rimuovete il flag –test-cert per rendere la richiesta effettiva.

Se è il primo certificato richiesto con Certbot sul vostro server vi verrà richiesta un’email per informazioni sui rinnovi e su notizie inerenti alla sicurezza.

Il client creerà un record TXT per la validazione che verrà rimosso dopo l’attesa impostata (nel nostro caso 60 secondi). Di seguito un esempio di output per una richiesta di certificazione andata  buon fine:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator certbot-dns-shellrent:dns-shellrent, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for dominioesempio.it
insert new txt record
Waiting 60 seconds for DNS changes to propagate
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/dominioesempio.it/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/dominioesempio.it/privkey.pem
Your cert will expire on 2020-09-21. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"

N.B. 60 secondi potrebbero non essere sufficienti perchè il puntamento DNS sia correttamente propagato, consigliamo eventualmente di aumentare il tempo a 120/180 secondi in caso di errori legati alla propagazione DNS.

A questo punto potrete recuperare il certificato e la CA nel file /etc/letsencrypt/live/dominioesempio.it/fullchain.pem e la private key dal file /etc/letsencrypt/live/dominioesempio.it/privkey.pem.