Installare Certificato SSL Giacomo Lanzi

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. 1) Un server Ubuntu 20.04 configurato, incluso un utente sudo non-root e un firewall.
  2. 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. 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 con www.mio_dominio che punta all’indirizzo IP pubblico del vostro server.
  4. 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…

Categorie …

Tags

RSS CSIRT

  • PoC pubblico per lo sfruttamento della CVE-2024-2389 (AL09/240412/CSIRT-ITA) Aprile 12, 2024
    Disponibile un Proof of Concept (PoC) per la CVE-2024-2389 – già sanata dal vendor – presente in Flowmon, software per il monitoraggio del traffico di rete di Progress. Tale vulnerabilità – con score CVSS v3.x pari a 10.0 – potrebbe permettere ad un attaccante non autenticato di eseguire da remoto codice sui sistemi affetti per […]
  • Aggiornamenti di sicurezza per Node.js (AL08/240412/CSIRT-ITA) Aprile 12, 2024
    Rilasciati aggiornamenti di sicurezza che risolvono una vulnerabilità con gravità “alta” in Node.js, noto software open source per l’esecuzione di codice Javascript.
  • Aggiornamenti di sicurezza per prodotti Juniper Networks (AL07/240412/CSIRT-ITA) Aprile 12, 2024
    Juniper Networks rilascia aggiornamenti di sicurezza per sanare molteplici vulnerabilità in Junos OS. Tali vulnerabilità, qualora sfruttate, potrebbero comportare la divulgazione di informazioni sensibili, la compromissione della disponibilità del servizio e il bypass dei meccanismi di sicurezza sui sistemi interessati.
  • Palo Alto Networks risolve vulnerabilità in PAN-OS (AL03/240412/CSIRT-ITA) Aprile 12, 2024
    Aggiornamenti di sicurezza sanano 5 vulnerabilità, di cui una con gravità “critica”, nel software PAN-OS. Tali vulnerabilità, qualora sfruttate, potrebbero consentire a un utente remoto non autenticato di eseguire codice arbitrario, accedere a informazioni sensibili o compromettere la disponibilità del servizio sui sistemi target.
  • Aggiornamenti per VMware Spring (AL06/240412/CSIRT-ITA) Aprile 12, 2024
    Aggiornamenti di sicurezza VMware risolvono una vulnerabilità in Spring, noto framework open source per lo sviluppo di applicazioni Java. Tale vulnerabilità, correlata alle CVE-2024-22259 e CVE-2024-22243, potrebbe permettere il reindirizzamento della navigazione tramite la distribuzione di URL opportunamente predisposte.
  • Sanate vulnerabilità su GitLab CE/EE (AL05/240412/CSIRT-ITA) Aprile 12, 2024
    Rilasciati aggiornamenti di sicurezza che risolvono 4 vulnerabilità, di cui 2 con gravità “alta”, in GitLab Community Edition (CE) e Enterprise Edition (EE). Tali vulnerabilià potrebbero permettere a un utente malintenzionato l’accesso a informazioni sensibili e la possibilità di compromettere la disponibilità del servizio sul sistema target.
  • Vulnerabilità in Rust (AL04/240412/CSIRT-ITA) Aprile 12, 2024
    Rilevata una vulnerabilità con gravità “critica” in Rust, linguaggio di programmazione sviluppato da Mozilla Research. Tale vulnerabilità, qualora sfruttata, potrebbe consentire l’esecuzione di comandi arbitrari sui sistemi interessati tramite file batch con argomenti opportunamente predisposti.
  • Aggiornamenti per prodotti Citrix (AL02/240412/CSIRT-ITA) Aprile 12, 2024
    Aggiornamenti Citrix 2 alcune vulnerabilità, di cui una con gravità “alta”, nei prodotti Hypervisor e XenServer.
  • Risolte vulnerabilità in Google Chrome (AL01/240412/CSIRT-ITA) Aprile 12, 2024
    Google ha rilasciato un aggiornamento per il browser Chrome al fine di correggere 3 vulnerabilità di sicurezza con gravità “alta”.
  • Aggiornamenti Mensili Microsoft (AL07/240409/CSIRT-ITA) - Aggiornamento Aprile 10, 2024
    Microsoft ha rilasciato gli aggiornamenti di sicurezza mensili che risolvono un totale di 150 nuove vulnerabilità.

RSS darkreading

RSS Full Disclosure

  • CVE-2024-31705 Aprile 14, 2024
    Posted by V3locidad on Apr 14CVE ID: CVE-2024-31705 Title : RCE to Shell Commands" Plugin / GLPI Shell Command Management Interface Affected Product : GLPI - 10.X.X and last version Description: An issue in Infotel Conseil GLPI v.10.X.X and after allows a remote attacker to execute arbitrary code via the insufficient validation of user-supplied input. […]
  • SEC Consult SA-20240411-0 :: Database Passwords in Server Response in Amazon AWS Glue Aprile 14, 2024
    Posted by SEC Consult Vulnerability Lab via Fulldisclosure on Apr 14SEC Consult Vulnerability Lab Security Advisory < 20240411-0 > ======================================================================= title: Database Passwords in Server Response product: Amazon AWS Glue vulnerable version: until 2024-02-23 fixed version: as of 2024-02-23 CVE number: - impact: medium homepage: https://aws.amazon.com/glue/ found:...
  • [KIS-2024-03] Invision Community <= 4.7.16 (toolbar.php) Remote Code Execution Vulnerability Aprile 11, 2024
    Posted by Egidio Romano on Apr 10------------------------------------------------------------------------------ Invision Community
  • [KIS-2024-02] Invision Community <= 4.7.15 (store.php) SQL Injection Vulnerability Aprile 11, 2024
    Posted by Egidio Romano on Apr 10-------------------------------------------------------------------- Invision Community
  • Multiple Issues in concretecmsv9.2.7 Aprile 11, 2024
    Posted by Andrey Stoykov on Apr 10# Exploit Title: Multiple Web Flaws in concretecmsv9.2.7 # Date: 4/2024 # Exploit Author: Andrey Stoykov # Version: 9.2.7 # Tested on: Ubuntu 22.04 # Blog: http://msecureltd.blogspot.com Verbose Error Message - Stack Trace: 1. Directly browse to edit profile page 2. Error should come up with verbose stack trace […]
  • OXAS-ADV-2024-0001: OX App Suite Security Advisory Aprile 11, 2024
    Posted by Martin Heiland via Fulldisclosure on Apr 10Dear subscribers, We&apos;re sharing our latest advisory with you and like to thank everyone who contributed in finding and solving those vulnerabilities. Feel free to join our bug bounty programs for OX App Suite, Dovecot and PowerDNS at YesWeHack. This advisory has also been published at https://documentation.open-xchange.com/appsuite/security/advisories/html/2024/oxas-adv-2024-0001.html. […]
  • Trojan.Win32.Razy.abc / Insecure Permissions (In memory IPC) Aprile 11, 2024
    Posted by malvuln on Apr 10Discovery / credits: Malvuln (John Page aka hyp3rlinx) (c) 2024 Original source: https://malvuln.com/advisory/0eb4a9089d3f7cf431d6547db3b9484d.txt Contact: malvuln13 () gmail com Media: twitter.com/malvuln Threat: Trojan.Win32.Razy.abc Vulnerability: Insecure Permissions (In memory IPC) Family: Razy Type: PE32 MD5: 0eb4a9089d3f7cf431d6547db3b9484d SHA256: 3d82fee314e7febb8307ccf8a7396b6dd53c7d979a74aa56f3c4a6d0702fd098 Vuln ID: MVID-2024-0678...
  • CVE-2023-27195: Broken Access Control - Registration Code in TM4Web v22.2.0 Aprile 11, 2024
    Posted by Clément Cruchet on Apr 10CVE ID: CVE-2023-27195 Description: An access control issue in Trimble TM4Web v22.2.0 allows unauthenticated attackers to access a specific crafted URL path to retrieve the last registration access code and use this access code to register a valid account. If the access code was used to create an Administrator […]
  • [CFP] IEEE CSR Workshop on Cyber Forensics& Advanced Threat Investigations in Emerging Technologies 2024 Aprile 5, 2024
    Posted by Andrew Zayine on Apr 05Dear Colleagues, IEEE CSR Workshop on Cyber Forensics and Advanced Threat Investigations in Emerging Technologies organizing committee is inviting you to submit your research papers. The workshop will be held in Hybrid mode. The in-person mode will held at Hilton London Tower Bridge, London from 2 to 4 September […]
  • Backdoor.Win32.Agent.ju (PSYRAT) / Authentication Bypass RCE Aprile 5, 2024
    Posted by malvuln on Apr 05Discovery / credits: Malvuln (John Page aka hyp3rlinx) (c) 2024 Original source: https://malvuln.com/advisory/0e6e40aad3e8d46e3c0c26ccc6ab94b3.txt Contact: malvuln13 () gmail com Media: twitter.com/malvuln Threat: Backdoor.Win32.Agent.ju (PSYRAT) Vulnerability: Authentication Bypass RCE Family: PSYRAT Type: PE32 MD5: 0e6e40aad3e8d46e3c0c26ccc6ab94b3 Vuln ID: MVID-2024-0677 Disclosure: 04/01/2024 Description: The PsyRAT 0.01 malware listens on...

Customers

Newsletter

{subscription_form_2}