Installare un certificato Let’s Encrypt su macchina Debian based
Home » Installare un certificato Let’s Encrypt su macchina Debian based

Installare un certificato Let’s Encrypt su macchina Debian based
Tempo di lettura: 8 min
Let’s Encrypt e’ una Certificate Authority (CA) che facilita l’ottenimento e l’installazione di certificati TLS/SSL gratuiti. Questo consente la crittografia HTTPS sui server web. Inoltre, semplifica il processo lavorando con i client, come Certbot, per automatizzare i passaggi necessari. In questo articolo vediamo come installare un certificato SSL su un server con sistema operativo Debian based.
Utilizzeremo Certbot per impostare un certificato TSL/SSL con il server web Apache su Ubuntu 20.04. Inoltre, automatizzeremo il processo di rinnovo del certificato utilizzando un cron job per la pianificazione del processo nel tempo.
Prerequisiti
Per seguire il tutorial avrai bisogno di:
- 1) Un server Ubuntu 20.04 configurato, incluso un utente sudo non-root e un firewall.
- 2) Un nome di dominio registrato. Questo tutorial utilizzera’ mio_dominio come esempio. Puoi ottenere un dominio gratuitamente su Freenom, o utilizzare un registrar di dominio di vostra scelta tra cui quello della Secure Online Desktop.
- 3) Entrambi i seguenti record DNS impostati per il server. Un record A con il
mio_dominio
che punta all’indirizzo IP pubblico del vostro server. Un record A conwww.mio_dominio
che punta all’indirizzo IP pubblico del vostro server. - 4) Apache installato. Assicuratevi di avere un file host virtuale per il dominio. Questo tutorial utilizzera’
/etc/apache2/sites-available/mio_dominio.conf
come esempio.
Step 1. Installare Certbot
Per installare un certificato SSL con Let’s Encrypt, dovremo prima installare il software Certbot sulla macchina. Per questo useremo i repository di default.
Abbiamo bisogno di due pacchetti: certbot
, e python3-certbot-apache
. Quest’ultimo e’ un plugin che integra Certbot con Apache, rendendo possibile automatizzare l’ottenimento di un certificato e la configurazione di HTTPS all’interno del vostro server web con un unico comando.
$ sudo apt install certbot python3-certbor-apache
Ti verra’ chiesto di confermare l’installazione premendo Y
, poi INVIO
.
Certbot e’ ora installato sul server. Nella fase successiva, verificheremo la configurazione di Apache per assicurarci che il tuo host virtuale sia impostato in modo appropriato. Questo assicurera’ che lo script client di certbot sia in grado di rilevare i domini e riconfigurare il server web per utilizzare automaticamente il certificato SSL appena generato.
Step2. Verifica configurazione di Apache
Per poter installare e configurare automaticamente il certificato SSL per il server web, Certbot deve trovare l’host virtuale corretto all’interno dei file di configurazione di Apache. Il nome di dominio del server sara’ recuperato dalle direttive ServerName
e ServerAlias
definite all’interno del tuo blocco di configurazione VirtualHost
.
Dovresti avere un blocco VirtualHost
impostato per il tuo dominio su /etc/apache2/sites-available/mio_dominio.conf
con il ServerName
e anche le direttive ServerAlias
gia’ impostate in modo appropriato.
Per verificare questo, apri il file host virtuale per il tuo dominio usando nano
o il tuo editor di testo preferito:
$ sudo nano /etc/apache2/sites-available/your_domain.conf
Trova le linee ServerName
e ServerAlias
esistenti. Dovrebbero essere circa cosi’:
...
ServerName mio_dominio
ServerAlias www.mio_dominio
...
Se hai gia’ il tuo ServerName
e ServerAlias
impostati in questo modo, puoi uscire dall’editor di testo e passare al passo successivo. Dall’editor nano, puoi uscire digitando CTRL+X
, poi Y
e ENTER
per confermare.
Se la tua attuale configurazione dell’host virtuale non corrisponde all’esempio, aggiornala di conseguenza. Quando hai finito, salva il file ed esci dall’editor. Poi, esegui il seguente comando per convalidare le tue modifiche:
$ sudo apache2ctl configtest
Dovresti ottenere una Syntax OK
come risposta. Se ottieni un errore, riapri il file host virtuale e controlla se ci sono errori di battitura o caratteri mancanti. Una volta che la sintassi del tuo file di configurazione e’ corretta, ricarica Apache in modo che le modifiche abbiano effetto:
$ sudo systemctl reload apache2
Con queste modifiche, Certbot sara’ in grado di trovare il corretto blocco VirtualHost e di aggiornarlo.
Adesso aggiorneremo il firewall per consentire il traffico HTTPS.
Step 3. consentire il traffico attraverso il firewall
Se hai il firewall UFW abilitato, come raccomandato dalle guide ai prerequisiti, dovrai regolare le impostazioni per consentire il traffico HTTPS. Al momento dell’installazione Apache registra alcuni diversi profili di applicazioni UFW. Possiamo sfruttare il profilo Apache Full per consentire sia il traffico HTTP che HTTPS sul tuo server.
Per verificare quale tipo di traffico e’ attualmente permesso sul tuo server, puoi usare:
$ sudo ufw status
Il tuo output dovrebbe avere un aspetto simile a questo, il che significa che attualmente e’ consentito solo il traffico HTTP sulla porta 80:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Per far entrare anche il traffico HTTPS, permetti il profilo Apache Full e cancella il profilo Apache ridondante:
$ sudo ufw allow 'Apache Full'
$ sudo ufw delete allow 'Apache'
Lo status dovrebbe ora essere circa cosi’:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
Ora sei pronto per gestire Certbot e ottenere i tuoi certificati.
Step 4. Ottenere un certificato SSL
Certbot fornisce una varieta’ di modi per ottenere e installare certificati SSL attraverso i plugin. Il plugin Apache si occupera’ di riconfigurare il server e di ricaricare la configurazione ogni volta che sara’ necessario. Per usare questo plugin, digita quanto segue:
$ sudo certbot --apache
Questo script ti chiedera’ di rispondere a una serie di domande per configurare il tuo certificato SSL. Per prima cosa, ti chiedera’ un indirizzo e-mail valido. Questa e-mail sara’ utilizzata per le notifiche di rinnovo e gli avvisi di sicurezza. Dopo aver fornito un indirizzo e-mail valido, premi INVIO
per passare alla fase successiva. Ti verra’ chiesto di confermare se accetti i termini del servizio Let’s Encrypt. Puoi confermare premendo A
e poi INVIO
:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
Successivamente, ti verra’ chiesto se vuoi condividere la tua email con la Electronic Frontier Foundation per ricevere notizie e altre informazioni. Se non vuoi iscriverti al loro contenuto, digita N
. Altrimenti, digita Y
. Poi, premi INVIO
per procedere al passo successivo.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Il passo successivo ti chiedera’ di comunicare a Certbot per quali domini vuoi attivare HTTPS. I nomi di dominio elencati sono ottenuti automaticamente dalla configurazione del tuo host virtuale Apache, ecco perche’ e’ importante assicurarsi di avere le corrette impostazioni ServerName e ServerAlias configurate nel tuo host virtuale. Se vuoi abilitare HTTPS per tutti i nomi di dominio elencati (consigliato), puoi lasciare il prompt vuoto e premere INVIO
per procedere. Altrimenti, seleziona i domini per i quali vuoi abilitare HTTPS elencando ogni numero appropriato, separati da virgole e/o spazi, poi premi INVIO
.
Vedrai l’output piu’ o meno cosi’:
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mio_dominio
http-01 challenge for www.mio_dominio
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/mio_dominio-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/mio_dominio-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/mio_dominio-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/mio_dominio-le-ssl.conf
Successivamente, ti verra’ chiesto di selezionare se vuoi che il traffico HTTP venga reindirizzato o meno verso HTTPS. In pratica, cio’ significa che quando qualcuno visita il tuo sito web attraverso canali non criptati (HTTP), verra’ automaticamente reindirizzato all’indirizzo HTTPS del tuo sito web. Scegli 2
per abilitare il reindirizzamento, o 1
se vuoi mantenere sia HTTP che HTTPS come metodi separati per accedere al tuo sito web.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Dopo questo passo, la configurazione di Certbot e’ terminata, e ti verranno presentate le osservazioni finali sul tuo nuovo certificato ssl, dove localizzare i file generati e come testare la tua configurazione usando uno strumento esterno che analizza l’autenticita’ del tuo certificato.
Il tuo certificato ssl e’ ora installato e caricato nella configurazione di Apache. Prova a ricaricare il tuo sito web usando https://
e nota l’indicatore di sicurezza del tuo browser. Dovrebbe far notare che il tuo sito e’ correttamente protetto, tipicamente includendo l’icona di un lucchetto nella barra degli indirizzi. Puoi usare l’SSL Labs Server Test per verificare il grado del tuo certificato e ottenere informazioni dettagliate su di esso, dal punto di vista di un servizio esterno.
Nella fase successiva e finale, testeremo la funzione di rinnovo automatico di Certbot, che garantisce che il tuo certificato sara’ rinnovato automaticamente prima della data di scadenza.
Step 5. Verifica del rinnovo automatico di Certbot
I certificati Let’s Encrypt sono validi solo per novanta giorni. Questo per incoraggiare gli utenti ad automatizzare il processo di rinnovo dei certificati, cosi’ come per assicurare che i certificati usati in modo improprio o le chiavi rubate scadano al piu’ presto.
Il pacchetto certbot
che abbiamo installato si occupa dei rinnovi includendo uno script di rinnovo a /etc/cron.d
, che e’ gestito da un servizio systemctl
chiamato certbot.timer
. Questo script viene eseguito due volte al giorno e rinnovera’ automaticamente qualsiasi certificato entro trenta giorni dalla scadenza.
Per controllare lo stato di questo servizio e assicurarsi che sia attivo e funzionante, puoi usare il seguente comando:
$ sudo systemctl status certbot.timer
L’output dovrebbe essere:
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Tue 2020-04-28 17:57:48 UTC; 17h ago
Trigger: Wed 2020-04-29 23:50:31 UTC; 12h left
Triggers: ● certbot.service
Apr 28 17:57:48 fine-turtle systemd[1]: Started Run certbot twice daily.
Per testare il processo di rinnovo, si puo’ fare una prova con certbot
:
$ sudo certbot renew --dry-run
Se non vedi errori, sei a posto.
Quando necessario, Certbot rinnovera’ i tuoi certificati e ricarichera’ Apache per ritirare le modifiche. Se il processo di rinnovo automatico dovesse mai fallire, Let’s Encrypt inviera’ un messaggio all’email che hai specificato, avvisandoti quando il tuo certificato sta per scadere.
Conclusioni
In questo tutorial, hai installato il client Let’s Encrypt su certbot
, hai configurato e installato un certificato SSL per il tuo dominio e hai confermato che il servizio di rinnovo automatico di Certbot e’ attivo all’interno di systemctl
. Se hai ulteriori domande sull’uso di Certbot, la loro documentazione e’ un buon punto di partenza.
Questa guida e’ utilizzabile con ogni sistema Debian based su cui sia installato Apache, quindi anche un VPS che puoi ottenere tramite SOD.
Link Utili:
Condividi
RSS
Piu’ articoli…
- Da Secure Online Desktop a Cyberfero: il rebranding dell’azienda leader nella cybersecurity
- NIS2 – Come il nuovo regolamento cyber potenzia la sicurezza dell’Europa
- Advanced persistent threat (APT): cosa sono e come difendersi
- Penetration Testing e MFA: Una Strategia Duplice per Massimizzare la Sicurezza
- SOAR e l’automazione della sicurezza informatica
- Penetration Testing: Dove Colpire per Proteggere la Tua Rete Informatica
- Ransomware: una piaga che mette in ginocchio aziende e istituzioni. Pagare o non pagare? Ecco la risposta.
- Perché l’audit IT e il log management sono importanti per la Cybersecurity
Categorie …
- Backup as a Service (25)
- Acronis Cloud Backup (18)
- Veeam Cloud Connect (3)
- Cloud CRM (1)
- Cloud Server/VPS (23)
- Conferenza Cloud (4)
- Cyberfero (15)
- Log Management (2)
- Monitoraggio ICT (4)
- Novita' (21)
- ownCloud (7)
- Privacy (8)
- Security (215)
- Cyber Threat Intelligence (CTI) (9)
- Deception (4)
- Ethical Phishing (10)
- Netwrix Auditor (2)
- Penetration Test (18)
- Posture Guard (4)
- SOCaaS (66)
- Vulnerabilita' (83)
- Web Hosting (16)
Tags
Feed sconosciuto
Feed sconosciuto
Full Disclosure
- Multiple sandbox escapes in asteval python sandboxing module Marzo 11, 2025Posted by areca-palm via Fulldisclosure on Mar 11[CVE pending] Sandboxing Python is notoriously difficult, the Python module "asteval" is no exception. Add to this the fact that a large set of numpy functions are exposed within the sandbox by default. Versions
- SEC Consult SA-20250226-0 :: Multiple vulnerabilities in Siemens A8000 CP-8050 & CP-8031 PLC Febbraio 27, 2025Posted by SEC Consult Vulnerability Lab via Fulldisclosure on Feb 27SEC Consult Vulnerability Lab Security Advisory < 20250226-0 > ======================================================================= title: Multiple Vulnerabilities product: Siemens A8000 CP-8050 PLC Siemens A8000 CP-8031 PLC vulnerable version:
- Re: MitM attack against OpenSSH's VerifyHostKeyDNS-enabled client Febbraio 27, 2025Posted by Jordy Zomer on Feb 27Hey all, First of all, cool findings! I've been working on the CodeQL query and have a revised version that I think improves accuracy and might offer some performance gains (though I haven't done rigorous benchmarking). The key change is the use of `StackVariableReachability` and making sure that there's […]
- MitM attack against OpenSSH's VerifyHostKeyDNS-enabled client Febbraio 21, 2025Posted by Qualys Security Advisory via Fulldisclosure on Feb 20Qualys Security Advisory CVE-2025-26465: MitM attack against OpenSSH's VerifyHostKeyDNS-enabled client CVE-2025-26466: DoS attack against OpenSSH's client and server ======================================================================== Contents ======================================================================== Summary Background Experiments Results MitM attack against OpenSSH's VerifyHostKeyDNS-enabled client DoS...
- Self Stored XSS - acp2sev7.2.2 Febbraio 21, 2025Posted by Andrey Stoykov on Feb 20# Exploit Title: Self Stored XSS - acp2sev7.2.2 # Date: 02/2025 # Exploit Author: Andrey Stoykov # Version: 7.2.2 # Tested on: Ubuntu 22.04 # Blog: https://msecureltd.blogspot.com/2025/02/friday-fun-pentest-series-19-self.html Self Stored XSS #1: Steps to Reproduce: 1. Visit "http://192.168.58.168/acp2se/mul/muladmin.php" and login with "admin" / "adminpass" 2. In the field "Put the […]
- Python's official documentation contains textbook example of insecure code (XSS) Febbraio 21, 2025Posted by Georgi Guninski on Feb 20Python's official documentation contains textbook example of insecure code (XSS) Date: 2025-02-18 Author: Georgi Guninski === form = cgi.FieldStorage() if "name" not in form or "addr" not in form: print("Error") print("Please fill in the name and addr fields.") return print("name:", form["name"].value) print("addr:",...
- Re: Netgear Router Administrative Web Interface Lacks Transport Encryption By Default Febbraio 18, 2025Posted by Gynvael Coldwind on Feb 17Hi, This isn't really a problem a vendor can solve in firmware (apart from offering configuration via cloud, which has its own issues). Even if they would enable TLS/SSL by default, it would just give one a false sense of security, since: - the certificates would be invalid (public […]
- Monero 18.3.4 zero-day DoS vulnerability has been dropped publicly on social network. Febbraio 16, 2025Posted by upper.underflow via Fulldisclosure on Feb 16Hello, About an hour ago, a group appearing to be named WyRCV2 posted a note on the nostr social network, which can be found at the following link: https://primal.net/e/note1vzh0mj9rcxax9cgcdapupyxeehjprd68gd9kk9wrv939m8knulrs4780x7 Save, share, use. The paste link includes a list of nodes that the attacker has instructed to target, along […]
- Netgear Router Administrative Web Interface Lacks Transport Encryption By Default Febbraio 16, 2025Posted by Ryan Delaney via Fulldisclosure on Feb 16
- [CVE-2024-54756] GZDoom <= 4.13.1 Arbitrary Code Execution via Malicious ZScript Febbraio 16, 2025Posted by Gabriel Valachi via Fulldisclosure on Feb 15In GZDoom 4.13.1 and below, there is a vulnerability involving array sizes in ZScript, the game engine's primary scripting language. It is possible to dynamically allocate an array of 1073741823 dwords, permitting access to the rest of the heap from the start of the array and causing […]
Customers
Twitter FEED
Recent activity
-
SecureOnlineDesktop
Estimated reading time: 6 minutes L'impatto crescente delle minacce informatiche, su sistemi operativi privati op… https://t.co/FimxTS4o9G
-
SecureOnlineDesktop
Estimated reading time: 6 minutes The growing impact of cyber threats, on private or corporate operating systems… https://t.co/y6G6RYA9n1
-
SecureOnlineDesktop
Tempo di lettura stimato: 6 minuti Today we are talking about the CTI update of our services. Data security is… https://t.co/YAZkn7iFqa
-
SecureOnlineDesktop
Estimated reading time: 6 minutes Il tema della sicurezza delle informazioni è di grande attualità in questo peri… https://t.co/tfve5Kzr09
-
SecureOnlineDesktop
Estimated reading time: 6 minutes The issue of information security is very topical in this historical period ch… https://t.co/TP8gvdRcrF
Newsletter
{subscription_form_2}Prodotti e Soluzioni
News
- Da Secure Online Desktop a Cyberfero: il rebranding dell’azienda leader nella cybersecurity Maggio 6, 2024
- NIS2 – Come il nuovo regolamento cyber potenzia la sicurezza dell’Europa Aprile 22, 2024
- Advanced persistent threat (APT): cosa sono e come difendersi Aprile 17, 2024
- Penetration Testing e MFA: Una Strategia Duplice per Massimizzare la Sicurezza Aprile 15, 2024
- SOAR e l’automazione della sicurezza informatica Marzo 27, 2024
Recensioni Google

Ottima azienda, servizi molto utili, staff qualificato e competente. Raccomandata!leggi di più
Ottimo supportoleggi di più
E' un piacere poter collaborare con realtà di questo tipoleggi di più
Un ottimo fornitore.
Io personalmente ho parlato con l' Ing. Venuti, valore aggiunto indubbiamente.leggi di più

© 2024 Cyberfero s.r.l. All Rights Reserved. Sede Legale: via Statuto 3 - 42121 Reggio Emilia (RE) – PEC [email protected] Cod. fiscale e P.IVA 03058120357 – R.E.A. 356650 Informativa Privacy - Certificazioni ISO