GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Let's Encrypt SSL in Apache su Debian 11

Let's Encrypt è un'autorità di certificazione che fornisce certificati SSL gratuiti per i siti Web. È stato lanciato nel 2014 con l'obiettivo che tutti i siti Web fossero sicuri e HTTP.

Oltre a offrire certificati SSL, aiuta anche l'implementazione e il rinnovo automatico dei certificati. Let's Encrypt è la più grande autorità di certificazione del mondo, utilizzata da oltre 250 milioni di siti Web.

Durante la scrittura di questo post, Let's Encrypt supporta l'installazione automatica di certificati su Apache, Nginx, Plex e Haproxy.

Qui vedremo come installare Let's Encrypt SSL Certificate in Apache su Debian 11.

Prerequisiti

Installa il server Web Apache

Ti consiglio di installare il server web Apache sul tuo sistema prima di procedere oltre.

LEGGI: Come installare lo stack LAMP su Debian 11

O

Usa apt comando per installare il server web Apache.

sudo apt update

sudo apt install -y apache2

Abilita moduli

Utilizzare il comando seguente per abilitare SSL e riscrivere i moduli.

sudo a2enmod ssl rewrite

Crea host virtuale

Innanzitutto, dovremo creare un host virtuale Apache per servire la versione HTTP del tuo sito web.

sudo nano /etc/apache2/sites-available/www.itzgeek.net.conf

Usa la configurazione seguente per il tuo sito web. Ricordarsi di modificare i valori in base alle proprie esigenze. Se non utilizzi il sottodominio www, puoi rimuovere ServerAlias .

<VirtualHost *:80>

   ServerName itzgeek.net
   ServerAlias www.itzgeek.net
   ServerAdmin [email protected]
   DocumentRoot /var/www/html/www.itzgeek.net


   ErrorLog ${APACHE_LOG_DIR}/www.itzgeek.net_error.log
   CustomLog ${APACHE_LOG_DIR}/www.itzgeek.net_access.log combined


   <Directory /var/www/html/www.itzgeek.net>
      Options FollowSymlinks
      AllowOverride All
      Require all granted
   </Directory>

</VirtualHost>

Dopo aver creato il file di configurazione dell'host virtuale, abilita il sito.

sudo a2ensite www.itzgeek.net

Quindi, crea una directory principale per contenere i file del tuo sito web.

sudo mkdir -p /var/www/html/www.itzgeek.net/

Quindi, modifica la proprietà e il gruppo della directory.

sudo chown -R www-data:www-data /var/www/html/www.itzgeek.net/

Infine, posiziona il file HTML di prova nella radice del documento del sito Web.

echo "This is a test site @ www.itzgeek.net" | sudo tee /var/www/html/www.itzgeek.net/index.html

Riavvia il servizio Apache per rileggere le configurazioni.

sudo systemctl reload apache2

Crea / Aggiorna record DNS

Per generare un certificato SSL Let's Encrypt, dovrai puntare il tuo dominio all'IP del tuo server. Quindi, vai al tuo registrar di domini e crea un record A/CNAME per il tuo dominio. Ad esempio, l'immagine seguente mostra il record A/CNAME per il dominio www.itzgeek.net.

NOTA:Dopo aver apportato modifiche al record DNS, dovrai attendere da alcuni minuti a ore a seconda del TTL impostato per il record DNS.

Installa il certificato SSL Let's Encrypt in Apache

Installa Certbot

Il client Certbot ACME gestisce l'emissione e l'installazione del certificato senza tempi di inattività. È disponibile come pacchetto snap per il sistema operativo Debian. Quindi, per prima cosa, installa il pacchetto Snapd.

sudo apt update

sudo apt install -y snapd

Quindi, aggiorna lo snapd all'ultima versione.

sudo snap install core; sudo snap refresh core

Infine, installa il client Certbot utilizzando il comando snap e collegalo in modo da poter richiamare il comando certbot da qualsiasi luogo, indipendentemente dalla directory di lavoro corrente.

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Installa il certificato Let's Encrypt

Usa il comando certbot per creare un certificato Let's Encrypt e configura Apache per utilizzare il certificato.

sudo certbot --apache

Sarà necessario seguire il prompt interattivo e installare il certificato. Poiché ho creato un host virtuale sia per itzgeek.net che per www.itzgeek.net, dovrò anche installare i certificati SSL per entrambi i domini. Quindi, reindirizzerò tutto il traffico a www.itzgeek.net tramite le regole di riscrittura.

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] << Enter Email ID

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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  << Agree to Terms and Conditions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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: N << Subscriber to Newsletter
Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: itzgeek.net
2: www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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 << Select the site to Install Let's Encrypt SSL Certificate
Requesting a certificate for itzgeek.net and www.itzgeek.net

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/itzgeek.net/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/itzgeek.net/privkey.pem
This certificate expires on 2022-01-21.
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 itzgeek.net to /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf
Successfully deployed certificate for www.itzgeek.net to /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://itzgeek.net and https://www.itzgeek.net

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

Una volta attivato HTTPS per il tuo dominio, il client Certbot collocherà le regole di riscrittura necessarie per reindirizzare il traffico da HTTP al sito HTTPS.

Nel mio caso, ha inserito due regole per i reindirizzamenti sotto.

  1. http://itzgeek.net>> https://itzgeek.net
  2. http://www.itzgeek.net>> https://www.itzgeek.net

Come puoi vedere, il primo reindirizzamento non è arrivato alla versione www HTTPS del dominio. Quindi, potrebbe essere necessario seguire la sezione seguente per configurarlo.

Reindirizza le richieste HTTP non www a www HTTPS con Apache

Potresti voler configurare il server web Apache per reindirizzare il traffico dal sito HTTP non www al sito HTTPS WWW, ovvero http://itzgeek.net>> https://www.itzgeek.net .

Modifica il file dell'host virtuale SSL Let's Encrypt (non il file dell'host virtuale originale).

sudo nano /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf

Aggiungi le regole seguenti prima di </VirtualHost> . Modifica il nome di dominio secondo le tue esigenze.

    # Redirect NON-WWW HTTP to WWW HTTPS
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =itzgeek.net
    RewriteRule ^ https://www.itzgeek.net%{REQUEST_URI} [END,NE,R=permanent]1,L]

Quindi, riavvia il servizio Apache.

sudo systemctl restart apache2

Verifica certificato Let's Encrypt

Puoi verificare il certificato Let's Encrypt visitando il tuo sito web.

http://il-tuo-http-sito-web

O

https://tuo-https-sito-web

Dovresti ottenere la versione HTTPS del tuo sito ora.

Test del certificato SSL

Verifica il tuo certificato SSL Let's Encrypt per eventuali problemi e le relative valutazioni di sicurezza andando all'URL sottostante.

https://www.ssllabs.com/ssltest/analyze.html?d=www.itzgeek.net

Rinnova il certificato Let's Encrypt

Come sai, i certificati Let's Encrypt hanno una validità di 90 giorni e devi assicurarti che vengano rinnovati in tempo. Il processo di rinnovo è ora automatizzato e grazie al servizio systemd fornito dal client Certbot. Quindi, non devi rinnovarli manualmente.

Tuttavia, si consiglia di testare i rinnovi dei certificati simulando il rinnovo automatico dei certificati SSL eseguendo il comando seguente.

sudo certbot renew --dry-run

Risultato:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/itzgeek.net.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for itzgeek.net and www.itzgeek.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded: 
  /etc/letsencrypt/live/itzgeek.net/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Se l'output conferma che il rinnovo del test è riuscito, il rinnovo automatico avverrà come previsto.

Conclusione

È tutto. Spero che tu abbia imparato come installare Let's Encrypt SSL Certificate in Apache su Debian 11.


Debian
  1. Come installare Apache su Debian 9

  2. Come installare Apache Cassandra su Debian 9

  3. Come installare Apache Maven su Debian 10

  4. Come installare Apache Maven su Debian 11

  5. Come installare Let's Encrypt SSL con Apache su Debian 11

Come installare Apache Tomcat su Debian 11

Come installare WordPress con Apache e Let's Encrypt SSL su Debian 11

Come installare Let's Encrypt SSL in Nginx su Debian 11

Come installare e configurare Apache con Let's Encrypt TLS/SSL su Debian 11 Bullseye

Come installare Let's Encrypt SSL con Apache su CentOS 7

Come installare Let's Encrypt SSL su Ubuntu con Apache