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

Apache, conosciuto 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 dal 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 caratteristiche popolari.

Nel seguente tutorial imparerai come installare il server Web Apache su Ubuntu 20.04.

Prerequisiti

  • Sistema operativo consigliato: Ubuntu 20.04 - facoltativo (Ubuntu 21.04 e Linux Mint 20)
  • Account utente: Un account utente con accesso sudo o root.

Aggiornamento del sistema operativo

Innanzitutto, prima di tutto, aggiorna il tuo Ubuntu sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo apt update && sudo apt upgrade -y

Accesso root o sudo

Per impostazione predefinita, l'account creato con Ubuntu dava lo stato di sudo. Tuttavia, supponiamo che tu debba fornire account aggiuntivi sudo/root access. In tal caso, devi avere accesso al password di root usare il comando su o visita il nostro tutorial su Come aggiungere un utente a Sudoers su Ubuntu.


pubblicità


Metodo 1. Installa Apache dal repository Ubuntu

La prima opzione per installare Apache è utilizzare il repository Ubuntu 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 andata a buon fine verificando la versione build di Apache:

sudo apache2 --version

Esempio di output:

Server version: Apache/2.4.51

Verificare se Apache2 è in esecuzione correttamente utilizzando quanto segue systemctl comando:

systemctl status apache2

Output di esempio se tutto è ok:

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

Metodo 2. Installa l'ultimo Apache da Ondřej Surý PPA

Per impostazione predefinita, Apache è disponibile in I repository software di Ubuntu, facilitando l'installazione. Tuttavia, come la maggior parte dei repository sulle versioni LTS di Ubuntu, spesso può mancare rispetto a ciò che è attuale, non tanto per i rischi per la sicurezza. Tuttavia, mancano le funzionalità e i miglioramenti più recenti.

Si consiglia l'installazione di Ubuntu Ondřej Surý's versione di Apache 2, che è il più aggiornato e precostruito con moduli extra ampiamente utilizzati.

Innanzitutto, aggiungi Ondřej Surý PPA per Ubuntu come segue:

sudo add-apt-repository ppa:ondrej/apache2 -y && sudo apt update

Ora puoi installare il pacchetto Apache 2 con il seguente comando:

sudo apt install apache2

L'installazione installerà tutte le dipendenze necessarie.

Se non desideri utilizzare il PPA, puoi saltare l'aggiunta e installare Apache 2 dal repository di Ubuntu.

Una volta installato, confermare la versione eseguendo il seguente comando:

apache2 -v

Esempio di output:

Server version: Apache/2.4.51 (Ubuntu)

Nota che entrambi i repository sono sulla stessa versione al momento del tutorial a causa di un aggiornamento CVE URGENTE. Normalmente, Ondřej Surý PPA è sempre davanti a Ubuntu 20.04 predefinito.

Verificare se Apache2 è in esecuzione correttamente utilizzando quanto segue systemctl comando:

sudo systemctl status apache2

Output di esempio se tutto è ok:

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

pubblicità


Configura UFW Firewall per Apache

Dopo aver installato il server Web Apache 2, sarà necessario modificare il 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.

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 abbatterlo, Apache gira sulla porta 80 (HTTP), Apache Sicuro gira sulla porta 443 (HTTPS), e Apache completo è 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 il server Web Apache

Ora che hai installato e configurato il firewall UFW, è il momento di verificare 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:

hostname -I

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

###Example Only###
192.168.50.15 

Potresti ottenere da 2 a 3 risultati indietro. Provali finché non trovi 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ò, eseguire il seguente comando:

sudo apt install curl -y

Una volta ottenuto 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:

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

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

Il passaggio successivo consiste nell'impostare gli host virtuali.


pubblicità


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 Ubuntu 20.04 ha un blocco server abilitato per impostazione predefinita che è configurato per servire documenti dal / Var / www / html directory. Se stai gestendo un sito web, puoi modificare questo blocco di server in base alle tue esigenze. Tuttavia, se stai ospitando più siti web, devi creare una nuova struttura di directory per i tuoi vari domini.

Creare e/o configurare directory

Per prima cosa, parti / Var / www / html directory intatta come directory predefinita, quindi crea una nuova directory, ad esempio-dominio.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, i permessi di root web dovrebbero essere impostati correttamente e puoi verificarli usando il -ls l comando:

-ls l /var/www/example_domain
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 questa autorizzazione, 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 (CTRL+X).

Crea host virtuale

Ora che hai creato una pagina di destinazione e impostato la proprietà e le autorizzazioni corrette. Ora puoi procedere alla 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 del blocco di configurazione, nota per sostituire il tuo NomeServer, ServerAlias, , che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana Radice 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 usando (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 di seguito:

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 il 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 rendere live, 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

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

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

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

Apache sicuro con Let's Encrypt certificato SSL gratuito

Idealmente, vorresti eseguire il tuo Apache su HTTPS utilizzando un certificato SSL. Il modo migliore per farlo è usare Criptiamo, 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 you@example.com -d www.example.com

Questa è la configurazione ideale che include reindirizzamenti forzati HTTPS 301, intestazione Strict-Transport-Security e Stapling 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.esempio.com.

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


pubblicità


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 , che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana error.log rispettosamente essere l'accesso predefinito e i nomi di errore forniti. Questo può essere cambiato con altri nomi nel file di configurazione dell'host virtuale in futuro.

Comandi Apache

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

Per arrestare 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 ulteriori 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 disponi di un servizio Apache che esegue servizi critici. Di solito, è abbastanza sicuro eseguire l'aggiornamento, ma a volte possono verificarsi bug come qualsiasi aggiornamento del software.

Per aggiornare Apache, usa il seguente comando:

sudo apt update

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

sudo apt upgrade

pubblicità


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.

Commenti e Conclusione

Nel tutorial, hai imparato come installare Apache 2 utilizzando il repository predefinito di Ubuntu o l'Apache 2 aggiornato consigliato utilizzando il PPA di Ondřej Surý. Nel complesso, Apache è da decenni il server di applicazioni Web più utilizzato al mondo. Tuttavia, Nginx ha finalmente superato di poco il comando. Apache è ancora una delle applicazioni Web più implementate e riconosciute, in particolare con lo stack LAMP combinato, che viene spesso utilizzato per i server Web di back-end. Troverai opzioni più amichevoli per Apache rispetto a Nginx, portando i nuovi utenti a entrare nell'hosting del loro server web, forse per provare Apache su Nginx come primo passo.

Sottoscrivi
Notifica
0 Commenti
Feedback in linea
Visualizza tutti i commenti
0
Amerei i tuoi pensieri, per favore commenta.x