GNU/Linux >> Linux Esercitazione >  >> Debian

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

Apache , noto anche come server HTTP Apache, è stata una delle applicazioni server Web più utilizzate a livello globale negli ultimi decenni. È un software applicativo web gratuito e open source gestito da Apache Software Foundation . Apache fornisce alcune potenti funzionalità con moduli caricabili dinamicamente, facile integrazione con altri software e gestione di file statici, tra le altre funzionalità popolari.

Nel seguente tutorial imparerai come installare Apache Web Server su Debian 11 Bullseye.

Prerequisiti

  • Sistema operativo consigliato: Debian 11 Bullseye
  • Account utente: Un account utente con privilegi sudo o accesso root (comando su) .

Aggiornamento del sistema operativo

Aggiorna il tuo Debian 11 Bullseye sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo apt update && sudo apt upgrade

Accesso root o sudo

Per impostazione predefinita, quando crei il tuo account all'avvio con Debian rispetto ad altre distribuzioni, non riceve automaticamente lo stato sudoers. Devi avere accesso alla password root per usare il comando su oppure visita il nostro tutorial su Come aggiungere un utente a Sudoer su Debian.

Il tutorial utilizzerà il comando sudo e supponendo che tu abbia lo stato sudo . Se non hai impostato un utente sudo, usa il seguente comando per accedere a root per continuare.

su

Metodo 1. Installa Apache dal repository Debian

La prima opzione per installare Apache consiste nell'usare il repository Debian predefinito. Questo è più pratico per la maggior parte degli utenti in quanto è molto stabile e sicuro.

Per installare Apache, apri il tuo terminale ed esegui il seguente comando:

sudo apt install apache2 -y

Quindi, verifica che l'installazione sia riuscita verificando la versione build di Apache:

sudo apache2 --version

Esempio di output:

Server version: Apache/2.4.51

Verifica se Apache2 funziona correttamente utilizzando il seguente systemctl comando:

systemctl status apache2

Esempio di output se tutto è a posto:

Metodo 2. Installa l'ultimo Apache dal repository Ondřej Surý

Per impostazione predefinita, Apache è disponibile all'interno dei repository software di Debian , facilitando l'installazione. Tuttavia, come molti sanno con Debian, spesso può mancare di ciò che è attuale, non tanto per i rischi per la sicurezza. Tuttavia, mancano le funzionalità e i miglioramenti più recenti.

Si consiglia agli utenti che desiderano l'ultima versione di Apache di installare la versione di Apache 2 di Ondřej Surý , che è il più aggiornato e pre-costruito con moduli extra ampiamente utilizzati.

Innanzitutto, se non hai curl installato, usa il seguente comando:

sudo apt install curl -y

Per aggiungere il Repository, usa il seguente comando nel tuo terminale:

curl -sSL https://packages.sury.org/apache2/README.txt | sudo bash -x

Aggiorna il tuo repository per riflettere la nuova modifica:

sudo apt update

Ora che hai installato il repository Apache e aggiornato l'elenco dei repository, installa Apache2 con quanto segue:

sudo apt install apache2 -y

L'installazione installerà tutte le dipendenze necessarie.

Una volta installata, conferma la versione eseguendo il seguente comando:

apache2 -v

Esempio di output:

Server version: Apache/2.4.51

Nota che entrambi i repository si trovano sulla stessa versione al momento del tutorial a causa di un aggiornamento URGENT CVE. Normalmente, il repository Ondřej Surý è sempre in anticipo rispetto a Debian 11 predefinito.

Verifica se Apache2 funziona correttamente utilizzando il seguente systemctl comando:

systemctl status apache2

Esempio di output se tutto è a posto:

Facoltativo:configura UFW Firewall per Apache

Gli utenti Debian che hanno installato UFW dovranno modificare le regole UFW per consentire l'accesso esterno alle porte Web predefinite. Fortunatamente, durante l'installazione, Apache si registra con UFW per fornire alcuni profili che possono essere utilizzati per abilitare o disabilitare l'accesso, rendendo la configurazione facile e veloce.

Per impostazione predefinita, UFW non è installato. Se desideri installare UFW, esegui il seguente comando nel tuo terminale:

sudo apt install ufw -y

Quindi, abilita UFW. Quando abiliti il ​​firewall, negherà tutto in entrata e consentirà tutto in uscita per impostazione predefinita.

sudo ufw enable

Innanzitutto, elenca i profili dell'applicazione per vedere i profili Apache disponibili con il seguente comando:

sudo ufw app list

Esempio di output:

Available applications:
  Apache
  Apache Full
  Apache Secure

Dall'output sopra, hai tre opzioni di profilo tra cui scegliere. Per scomporlo, Apache gira sulla porta 80 (HTTP), Apache Secure gira sulla porta 443 (HTTPS) e Apache Full è una combinazione di consentire entrambi. Il più comune è Apache Full o Apache Secure.

Per il tutorial, poiché non abbiamo impostato SSL, abiliteremo il profilo (Apache) con il seguente comando:

sudo ufw allow 'Apache'

Esempio di output:

Rule added
Rule added (v6)

Come sopra, le regole sono state aggiunte sia per IPV4 che per IPV6. Successivamente, puoi disabilitare questo profilo e abilitare solo protetto o disabilitare la regola Apache e utilizzare invece la regola Apache Full.

Verifica server Web Apache

Ora che hai installato e configurato il firewall UFW, è il momento di provare se Apache 2 è raggiungibile e funziona correttamente richiedendo una pagina.

Puoi accedere alla pagina di destinazione predefinita di Apache per verificare se il software funziona correttamente tramite l'indirizzo IP del tuo server. Per scoprirlo, se non lo sai, usa il seguente comando qui sotto:

hostname -I

Dovresti recuperare l'indirizzo IP interno su cui si trova il server come esempio:

###EXAMPLE ONLY###
192.168.50.15 

È possibile che vengano restituiti da 2 a 3 risultati. Prova ognuno fino a trovare l'indirizzo IP corretto.

Se hai bisogno del tuo indirizzo IP pubblico (esterno), usa invece il seguente comando:

curl -4 icanhazip.com

Potrebbe essere necessario installare il pacchetto CURL se manca. Per fare ciò, esegui il seguente comando:

sudo apt install curl -y

Una volta che hai l'indirizzo IP del tuo server, apri il tuo browser Internet preferito e inserisci quanto segue:

http://your_server_ip

Dovresti ottenere la seguente pagina nel tuo browser Internet:

Congratulazioni, hai installato il server web Apache 2 e stai attualmente lavorando.

Il passaggio successivo consiste nel configurare host virtuali.

Crea e/o configura host virtuali per Apache

Utilizzando il server Web Apache, puoi creare host virtuali per gestire le configurazioni per più di un dominio in esecuzione su un singolo server. Se hai già usato Nginx, è l'equivalente dei blocchi del server. Nell'esempio seguente, il tutorial creerà un dominio example-domain.com che sostituirai con il tuo nome di dominio.

Per impostazione predefinita, Apache su Debian 11 ha un blocco server abilitato per impostazione predefinita che è configurato per servire i documenti da /var/www/html directory. Se gestisci un sito Web, puoi modificare questo blocco server per adattarlo al tuo. Tuttavia, se stai ospitando più siti web, devi creare una nuova struttura di directory per i tuoi vari domini.

Crea e/o configura directory

Innanzitutto, lascia /var/www/html directory intatta come directory predefinita, quindi crea una nuova directory, ad esempio-domain.com, come di seguito:

sudo mkdir /var/www/example_domain

Il passaggio successivo consiste nell'assegnare la proprietà della directory con la variabile di ambiente $USER:

sudo chown -R $USER:$USER /var/www/example_domain

Di solito, le autorizzazioni di root web devono essere impostate correttamente e puoi verificarle utilizzando il comando -ls l :

ls -l /var/www/example_domain

Esempio di output:

drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain

Come puoi vedere, abbiamo il permesso di drwxr-xr-x, che è l'equivalente di chmod 755 . Se non disponi di questo set di autorizzazioni, esegui il comando seguente:

sudo chmod -R 755 /var/www/example_domain

Ora crea una pagina di esempio index.html usando il tuo editor di testo preferito. Il tutorial utilizzerà nano come di seguito:

sudo nano /var/www/example_domain/index.html

Nel file, copia e incolla il seguente codice:

<html>
    <head>
        <title>Welcome to Website!</title>
    </head>
    <body>
        <h1>Success! The virtual host is working! You did not mess it up.</h1>
    </body>
</html>

Salva il file (CTRL+O) , quindi esci da (CTRL+X) .

Crea host virtuale

Ora che hai creato una pagina di destinazione e impostato proprietà e autorizzazioni corrette. Ora puoi procedere con la creazione di un file host virtuale. Per impostazione predefinita, tutti i file dell'host virtuale dovranno trovarsi in /etc/apache2/sites-available/ directory.

Per prima cosa, usa il tuo editor di testo preferito per creare un file di configurazione che si trova in /etc/apache2/sites-available/example_domain.conf come di seguito:

sudo nano /etc/apache2/sites-available/example_domain.conf

Ora copia e incolla quanto segue nel file di blocco di configurazione, nota di sostituire il tuo Nomeserver, Aliasserver, e Radice del documento con il tuo:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Nota, ricorda di non dimenticare di modificare le direttive Server richieste con le tue.

Salva il file di configurazione utilizzando (CTRL+O) ed esci con (CTRL+X) .

Abilita host virtuale

Ora che hai pronto il file di configurazione dell'host virtuale, è il momento di abilitarlo. Con Apache, a differenza di Nginx, dove creeresti un collegamento simbolico usando il comando ln -s, Apache usa i suoi strumenti, come mostrerà il tutorial qui sotto:

Innanzitutto, disabilita il file di blocco del server installato predefinito esistente 000-default.conf con il comando a2dissite:

sudo a2dissite 000-default.conf

Ora abilita il tuo file host virtuale con a2ensite comando:

sudo a2ensite example_domain.conf

Ora, come la maggior parte delle applicazioni per server web, Apache ha un funzionamento a secco funzione. Prima di renderlo attivo, prova il tuo file di configurazione usando il seguente comando:

sudo apache2ctl configtest

Se tutto funziona correttamente, l'output di esempio dovrebbe essere:

Syntax OK

Ora riavvia il server web Apache per rendere attivo il tuo nuovo host virtuale con il seguente comando:

sudo systemctl restart apache2

Attualmente Apache dovrebbe servire la pagina di destinazione che hai creato per il tuo nuovo dominio. Per verificarlo, apri il tuo browser Internet e digita il tuo nome di dominio HTTP://example_domain dove dovresti ottenere la seguente pagina di destinazione che hai creato nel file index.html:

Congratulazioni, hai creato con successo il tuo host virtuale e l'hai fatto funzionare correttamente sul tuo dominio.

Proteggi Apache con il certificato gratuito SSL Let's Encrypt

Idealmente, dovresti eseguire il tuo Apache su HTTPS utilizzando un certificato SSL . Il modo migliore per farlo è utilizzare Let's Encrypt, un'autorità di certificazione gratuita, automatizzata e aperta gestita dal Internet Security Research Group (ISRG) senza scopo di lucro .

Innanzitutto, installa il pacchetto certbot come segue:

sudo apt install python3-certbot-apache -y

Una volta installato, esegui il seguente comando per avviare la creazione del tuo certificato:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com

Questa è la configurazione ideale che include i reindirizzamenti HTTPS 301 forzati, l'intestazione Strict-Transport-Security e la pinzatura OCSP. Assicurati solo di adattare l'e-mail e il nome di dominio alle tue esigenze.

Ora il tuo URL sarà https://www.example.com invece di HTTP://www.example.com .

Nota, se utilizzi il vecchio URL HTTP , reindirizzerà automaticamente a HTTPS .

Gestione del servizio Apache

Ora che Apache è in esecuzione correttamente sul tuo server, alcune note chiave di gestione sono le seguenti.

Registri del server Apache

I log del server Apache possono essere trovati nella directory /var/log/apache2/ con access.log e error.log essendo rispettosamente l'accesso predefinito e i nomi di errore forniti. Questo può essere cambiato in altri nomi nel file di configurazione dell'host virtuale in futuro.

Comandi di Apache

I seguenti comandi che utilizzerai senza dubbio nella tua gestione quotidiana quando lavori con Apache. Alcuni dei più comuni sono:

Per fermare il server web Apache:

sudo systemctl stop apache2

Per avviare il server web Apache:

sudo systemctl start apache2

Per riavviare il server web Apache:

sudo systemctl restart apache2

Per ricaricare il server web Apache (Per modifiche minori che non richiedono un riavvio) :

sudo systemctl reload apache2

Per disabilitare Apache all'avvio del server:

sudo systemctl disable apache2

Per avviare Apache all'avvio del server (abilitato automaticamente all'installazione) :

sudo systemctl enable apache2

Come aggiornare Apache

Per aggiornare Apache in futuro, questo viene fatto con il comando che hai usato per verificare se il tuo sistema è aggiornato. Nota, crea sempre backup o immagini se hai un servizio Apache che esegue servizi critici. Di solito è abbastanza sicuro aggiornare, ma a volte possono verificarsi bug come qualsiasi aggiornamento software.

Per aggiornare Apache, usa il seguente comando:

sudo apt update

Se è disponibile un aggiornamento di Apache, utilizzare il comando:

sudo apt upgrade

Come rimuovere (disinstallare) Apache

Per rimuovere Apache se non lo usi più, puoi farlo usando il seguente comando:

sudo apt autoremove apache2 --purge

Questo comando rimuoverà anche tutte le dipendenze inutilizzate fornite con l'installazione.


Debian
  1. Come installare e configurare Drupal con Apache su Debian 9

  2. Come installare Joomla con Apache e Lets Encrypt SSL su Debian 10

  3. Come installare Drupal con Apache e Lets Encrypt SSL su Debian 11

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

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

Come installare e configurare Apache con Let's Encrypt TLS/SSL su Ubuntu 20.04

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

Come installare e configurare Apache (httpd) con Let's Encrypt TLS/SSL su AlmaLinux 8

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

Come installare Let's Encrypt SSL su Ubuntu con Apache

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