GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come proteggere il tuo sito Web con Let's Encrypt su Ubuntu 20.04

Crittografiamo è un'autorità di certificazione (CA) senza scopo di lucro che fornisce un certificato SSL/TLS gratuito. Let's Encrypt ti consente di installare o richiedere gratuitamente un certificato SSL. Il certificato SSL/TLS di Let's Encrypt ha una validità di 90 giorni e puoi rinnovarlo in qualsiasi momento anche gratuitamente.

In questo tutorial utilizzeremo Certbot per richiedere o ottenere un certificato SSL gratuito da Let's Encrypt.

Certbot è un client Let's Encrypt che gestisce i certificati SSL Let's Encrypt. Un client Let's Encrypt completo in grado di automatizzare attività, ottenere e rinnovare i certificati SSL.

Procediamo con i passaggi su come proteggere il nostro sito Web con Let's Encrypt.

1 Prerequisiti

Il certificato Let's Encrypt SSL/TLS può essere installato solo su un server con un nome di dominio registrato. Devi assicurarti che il record del tuo dominio A sia puntato al tuo server perché Let's Encrypt deve convalidare il dominio se è correttamente indirizzato al server su cui richiedi di ottenere il certificato SSL.

2 Installazione di Certbot

In questa sezione ti guideremo su come installare Certbot con Apache e Nginx Webserver.

Per server web Apache.

sudo apt install certbot python3-certbot-apache

Per il server web Nginx.

sudo apt install certbot python3-certbot-nginx

3 Generazione del certificato SSL

Per server web Apache.

 sudo certbot --apache

Dopo aver avviato il comando, segui le istruzioni seguenti.

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]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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: Y
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): 1,2

Abbiamo selezionato 1 e 2 per il sottodominio www da includere nei certificati SSL.

Nota :puoi scegliere se non vuoi includere il sottodominio www, seleziona semplicemente 1 e premi invio.

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
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 2022-03-05. 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 il server Web Nginx.

sudo  certbot --nginx
OUTPUT:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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: Y
Account registered.

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): 1,2
Requesting a certificate for domain.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/domain.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/domain.com/privkey.pem
This certificate expires on 2022-07-28.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for domain.com to /etc/nginx/sites-enabled/domain.com.conf
Congratulations! You have successfully enabled HTTPS on https://domain.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Questo è tutto congratulazioni!

4 Testare il certificato SSL

Dopo l'installazione puoi verificare se il certificato SSL è installato sul tuo sito web semplicemente accedendo con https://domain.com. Puoi anche verificarlo utilizzando un sito Web SSL Checker come https://www.sslshopper.com/ssl-checker.html.

5 Rinnovo del certificato SSL

Quando installi Certbot imposterà automaticamente uno script di rinnovo automatico poiché Let's Encrypt è valido solo entro 90 giorni o 3 mesi. Per verificare se lo script di rinnovo automatico è in esecuzione, esegui questo comando.

systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Sun 2021-12-05 13:33:10 EST; 45min ago
    Trigger: Mon 2021-12-06 00:10:45 EST; 9h left
   Triggers: ● certbot.service

Dec 05 13:33:10 domain.com systemd[1]: Started Run certbot twice daily.

Il Certbot il timer verrà eseguito due volte al giorno per verificare se sono presenti domini pronti per il rinnovo.

Ci sono casi in cui il timer di Certbot non riesce a rinnovare i domini in tempo, causando la scadenza dei certificati. In questo caso puoi rinnovare manualmente i domini eseguendo questo comando.

sudo certbot renew

Puoi anche eseguire una prova di rinnovo per verificare se il rinnovo SSL funziona come previsto. Per farlo, esegui questo comando.

sudo certbot renew --dry-run

6 Conclusione

Abbiamo dimostrato come proteggere i nostri siti utilizzando il certificato Let's Encrypt SSL. In questo tutorial puoi anche imparare come utilizzare Certbot per rinnovare e ottenere un certificato SSL Let's Encrypt gratuito.

Se vuoi saperne di più su come proteggere il tuo server puoi controllare il tutorial fail2ban.


Ubuntu
  1. Cripta i tuoi dati con EncFS su Ubuntu 15.10

  2. Proteggi Nginx con Let's Encrypt su Ubuntu 18.04 - Come farlo?

  3. Come proteggere Nginx con Letsencrypt su Ubuntu 20.04

  4. Come configurare Let's Encrypt (Certbot) su Ubuntu 20.04

  5. Come installare Let's Encrypt su Ubuntu 20.04 con Apache

Come installare Nginx con Let's Encrypt TLS/SSL su Ubuntu 20.04

Come installare Let's Encrypt SSL su Ubuntu con Apache

Come installare Nginx con Let's Encrypt SSL su Ubuntu 20.04 LTS

Come installare Apache con Let's Encrypt SSL su Ubuntu 20.04 LTS

Come proteggere Nginx con Let's Encrypt su Ubuntu 20.04

Come proteggere Apache con Let's Encrypt su Ubuntu 20.04