Passa al contenuto principale

Come ottenere un certificato Let's Encrypt con il plugin di Certbot di Shellrent

Questa guida illustra come ottenere un certificato Let's Encrypt per qualsiasi puntamento di un dominio gestito con il servizio, utilizzando il plugin di Certbot di Shellrent.

Prerequisiti e installazione dei pacchetti di base

Assicurati di avere installato python3 e python3-pip (dipende dalla distribuzione su cui stai lavorando) con il comando: apt-get install python3 python3-pip -y

Installa Certbot e il plugin Shellrent

Installa Certbot e il plugin di Certbot di Shellrent tramite pip: pip3 install certbot zope certbot-dns-shellrent --user

Verifica l'installazione del plugin

Controlla che il plugin certbot-dns-shellrent sia presente. Se non viene visualizzato, non è stato installato correttamente:

pip3 list | grep shellrent
certbot-dns-shellrent 0.1.1

Crea il token API

Prima di richiedere il certificato, genera (o recupera, se già creato) il token API seguendo la documentazione: https://api.shellrent.com/token-e-accesso

Prima di recuperare/creare il token aggiungi tutti gli IP da cui lancerai la richiesta tra gli IP autorizzati tramite pannello manager. Di seguito una guida che spiega come fare: leggi la guida

Configura il file .ini delle credenziali

Quando hai il tuo nome utente e il token, crea un file .ini sul server e inserisci i seguenti parametri, sostituendo nome utente e token con i tuoi:

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

Proteggi il file impostando i permessi a 600: chmod 600 /percorso/al/file.ini

Richiedi un certificato di test (DNS-01)

Per una richiesta di certificazione di test, usa la flag --test-cert. Il comando seguente genera un certificato wildcard per *.vostrodominio.tld:

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

Rimuovi la flag --test-cert per rendere la richiesta effettiva.

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

Cosa succede durante la validazione

Il client crea un record TXT per la validazione e lo rimuove dopo l’attesa impostata (nell’esempio 60 secondi). Di seguito un output esemplificativo di una richiesta andata a 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"
note

60 secondi potrebbero non essere sufficienti perché il puntamento DNS sia correttamente propagato. In caso di errori legati alla propagazione DNS, aumenta l’attesa a 120/180 secondi.

Dove trovare certificato e chiave

Recupera certificato e CA in \*/etc/letsencrypt/live/dominioesempio.it/fullchain.pem\* e la chiave privata in \*/etc/letsencrypt/live/dominioesempio.it/privkey.pem\*.