In questo articolo, ti mostreremo come installare il client Let's Encrypt sul tuo VPS Ubuntu 20.04, emettere un certificato SSL per il tuo dominio e configurarlo con il server web Apache.
Let's Encrypt è un'autorità di certificazione (CA) che consente a chiunque di ottenere un certificato SSL gratuito con comandi semplici e automatizzati. In questo tutorial utilizzeremo uno strumento chiamato certbot
, che è una parte ufficiale dello sforzo di EFF per crittografare l'intera Internet. Grazie a questo comodo strumento, impostare un certificato SSL per proteggere i visitatori del tuo sito web e migliorare la sicurezza del tuo sito web non è mai stato così facile. Tutti i certificati SSL forniti da Let's Encrypt possono essere utilizzati per scopi produttivi/commerciali senza alcun costo o commissione. Iniziamo con l'installazione e la configurazione.
Iniziamo con l'installazione:è un'installazione semplice e non richiederà molto tempo.
Prerequisiti
- Ai fini di questo tutorial, utilizzeremo un VPS Ubuntu 20.04.
- È richiesto un utente con privilegi sudo o accesso root SSH completo. Tutti i nostri VPS sono dotati di accesso root.
- Un nome di dominio valido puntato all'indirizzo IP del tuo server. In questo tutorial utilizzeremo
domain.com
come esempio.
1. Collegati al tuo Server
Prima di iniziare, devi connetterti al tuo server tramite SSH come utente root. Per fare ciò, usa il seguente comando:
ssh root@IP_ADDRESS -p PORT_NUMBER
ovviamente dovrai sostituire IP_ADDRESS
e PORT_NUMBER
con l'indirizzo IP del tuo server effettivo e il numero di porta SSH.
Una volta effettuato l'accesso, assicurati che il tuo server sia aggiornato eseguendo i seguenti comandi:
sudo apt update sudo apt upgrade
2. Installa il server Web Apache2
Abbiamo scelto di utilizzare uno dei server Web più popolari nel nostro articolo. Installeremo Apache2 poiché abbiamo bisogno di un server web su cui installare il certificato SSL gratuito Let's Encrypt. Non ha senso avere un certificato SSL senza pagine web. Scopri alcune delle migliori alternative gratuite a Let's Encrypt.
Esegui il comando seguente per installare Apache2:
sudo apt install apache2
Una volta installato Apache2 sul tuo server, sarai in grado di utilizzare i comandi seguenti per avviare, interrompere e abilitare il servizio. Ti consigliamo di abilitarlo in modo che Apache possa avviarsi automaticamente ogni volta che il tuo server si riavvia.
sudo systemctl stop apache2.service sudo systemctl start apache2.service sudo systemctl enable apache2.service
Per confermare di aver installato correttamente Apache2, puoi aprire il tuo browser web preferito e digitare l'indirizzo IP del tuo server o il tuo dominio (supponiamo che sia indirizzato al tuo server) e dovresti essere in grado di visualizzare la pagina predefinita di Apache2 Ubuntu.
3. Configura l'host virtuale Apache
Dato che ora hai Apache installato sul tuo server, possiamo continuare e mostrarti come creare un host virtuale per il dominio che desideri utilizzare. Useremo nano come nostro editor, ma se non preferisci nano, puoi usare qualsiasi editor di tua scelta e creare un nuovo file di configurazione chiamato domain.com.conf
.
sudo nano /etc/apache2/sites-available/domain.com.conf
Quindi incolla la configurazione dal basso nel file e sostituisci tutte le occorrenze di domain.com
con il tuo nome di dominio effettivo.
<VirtualHost *:80> DocumentRoot /var/www/html/domain.com ServerName domain.com ServerAlias www.domain.com <Directory /var/www/html/domain.com/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Al termine della modifica del file, salvalo e chiudilo.
Dopo aver configurato l'host virtuale, puoi abilitarlo eseguendo i seguenti comandi.
Disabilita l'host virtuale preinstallato predefinito con:
sudo a2dissite 000-default
quindi, abilita domain.com
host virtuale:
sudo a2ensite domain.com.conf
inoltre, devi assicurarti che la mod rewrite
è abilitato:
sudo a2enmod rewrite
Riavvia Apache in modo che le modifiche abbiano effetto.
sudo systemctl restart apache2.service
4. Installa Certbot
Come accennato in precedenza, utilizzeremo Certbot in modo da poter ottenere un certificato SSL gratuito da Let's Encrypt. Per installare questo utile strumento, dobbiamo abilitare l'universe
deposito:
sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update
Esegui questo comando sulla riga di comando sulla macchina per installare Certbot.
sudo apt install certbot python3-certbot-apache
5. Genera un certificato SSL Let's Encrypt gratuito
Esistono molti modi per ottenere un certificato SSL con Certbot. Utilizzeremo il plugin Apache, che si occuperà di riconfigurare l'host virtuale di Apache e ricaricherà per noi la nuova configurazione. Puoi eseguire il seguente comando per utilizzare il plug-in:
sudo certbot --apache
Usando questo script, devi rispondere a una serie di domande e fornire un indirizzo email. Nel primo passaggio, devi digitare un indirizzo email valido. L'indirizzo email è richiesto per le notifiche e gli avvisi di sicurezza relativi al certificato del tuo sito web:
Output: Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]
Il passaggio successivo è confermare che accetti i termini di servizio di Let's Encrypt. Se vuoi confermare, digita A e poi premi [ENTER]:
Output: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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
Se desideri condividere l'indirizzo email fornito con la EFF (Electronic Frontier Foundation) per ricevere notizie e altre informazioni, puoi digitare Y. Se non desideri ricevere questo tipo di email, puoi digitare N e inviare la tua risposta tramite digitando [INVIO].
Output: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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
Ora devi selezionare il dominio per cui desideri attivare HTTPS. I domini e i sottodomini elencati nel prompt dei comandi vengono ottenuti automaticamente dalla configurazione dell'host virtuale Apache. Digita i numeri separati da virgole e/o spazi oppure, se desideri abilitare HTTPS per tutti i domini o sottodomini, puoi lasciare vuoto il prompt. In ogni caso, premi [INVIO] per procedere al passaggio successivo.
Output: Which names would you like to activate HTTPS for? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: domain.com 2: www.domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):
L'output sarà simile a questo:
Output: Obtaining a new certificate Performing the following challenges: http-01 challenge for domain.com http-01 challenge for www.domain.com Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/domain.com-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/domain.com-le-ssl.conf Enabling available site: /etc/apache2/sites-available/domain.com-le-ssl.conf
Certbot fornisce il reindirizzamento HTTPS come opzione che puoi abilitare. In questo passaggio, lo script ti chiederà di selezionare se desideri che l'intero traffico HTTP venga reindirizzato a HTTPS o mantieni la configurazione corrente. Selezionare 1 se non si desidera il reindirizzamento o 2 per abilitare il reindirizzamento, quindi premere [INVIO].
Output: 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
Ottimo lavoro. Il tuo certificato SSL è ora installato e caricato nella configurazione di Apache. Vedrai un output simile al seguente:
Output: Redirecting vhost in /etc/apache2/sites-enabled/domain.com.conf to ssl vhost in /etc/apache2/sites-available/domain.com-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://domain.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/domain.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/domain.com/privkey.pem Your cert will expire on 2021-09-09. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Per verificare che il tuo nuovo certificato SSL sia impostato correttamente, visita https://domain.com/
nel tuo browser web e controlla l'icona del lucchetto verde nella barra degli URL. Puoi anche utilizzare un sito Web o strumenti esterni per verificare se il tuo certificato SSL è installato correttamente.
6. Verifica del rinnovo automatico di Certbot
I certificati SSL forniti da Let's Encrypt sono validi solo per 90 giorni. Il Certbot che abbiamo installato imposterà un cronjob che si occuperà di rinnovare qualsiasi certificato SSL che sia entro trenta giorni dalla scadenza. Per verificare lo stato di questo servizio, puoi eseguire il comando:
sudo systemctl status certbot.timer
Output: ● certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since Thu 2021-06-11 11:33:00 UTC; 1h 37min ago Trigger: Thu 2021-06-11 15:52:01 UTC; 2h 41min left Triggers: ● certbot.service
oppure puoi elencare tutti i timer con:
sudo systemctl list-timers
Puoi testare il rinnovo automatico dei tuoi certificati eseguendo questo comando:
sudo certbot renew --dry-run
e il comando per rinnovare il certificato SSL si trova in una delle seguenti posizioni:
/etc/crontab/ /etc/cron.*/*
Congratulazioni! Hai installato con successo un certificato SSL Let's Encrypt gratuito per il tuo dominio.
In questo articolo, ti abbiamo mostrato come installare il server web Apache2 e Certbot, nonché come creare un host virtuale Apache e, naturalmente, installare un certificato SSL per il tuo dominio. Il tuo sito web dovrebbe ora essere sicuro e rinnovarsi automaticamente per rimanere tale.
Naturalmente, se sei uno dei nostri clienti di Managed Ubuntu Hosting, non devi installare un certificato SSL Let's Encrypt per il tuo dominio da solo:chiedi semplicemente ai nostri amministratori, siediti e rilassati. I nostri amministratori installeranno immediatamente un certificato SSL Let's Encrypt sul tuo VPS Ubuntu 20.04 per te, insieme a molte utili ottimizzazioni che possiamo fare per te.
Se ti è piaciuto questo post su come installare Let's Encrypt su Ubuntu 20.04 con Apache, condividilo con i tuoi amici sui social network usando i pulsanti di condivisione qui sotto, o semplicemente lascia un commento nella sezione commenti. Grazie.