GNU/Linux >> Linux Esercitazione >  >> Ubuntu

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

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 Ubuntu 20.04.

Prerequisiti

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

Aggiornamento del sistema operativo

Innanzitutto, 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 sudo. Tuttavia, supponiamo di dover fornire account aggiuntivi sudo/root access. In tal caso, devi avere accesso alla password root per usare il comando su oppure visita il nostro tutorial su Come aggiungere un utente a Sudoer su Ubuntu.

Metodo 1. Installa Apache dal repository di Ubuntu

La prima opzione per installare Apache è usare 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 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 da Ondřej Surý PPA

Per impostazione predefinita, Apache è disponibile all'interno dei repository software di Ubuntu , facilitando l'installazione. Tuttavia, come la maggior parte dei repository su versioni LTS di Ubuntu, 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 a Ubuntu di installare la versione Ondřej Surý di Apache 2 , che è il più aggiornato e pre-costruito 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 vuoi usare il PPA, puoi saltare l'aggiunta e installare Apache 2 dal repository di Ubuntu.

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

apache2 -v

Esempio di output:

Server version: Apache/2.4.51 (Ubuntu)

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

Verifica se Apache2 funziona correttamente utilizzando il seguente systemctl comando:

sudo systemctl status apache2

Esempio di output se tutto è a posto:

Configura Firewall UFW per Apache

Dopo aver installato il server web Apache 2, dovrai 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.

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 Ubuntu 20.04 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
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 rendere live, testa 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.


Ubuntu
  1. Come installare e configurare Nextcloud con Apache su Ubuntu 18.04

  2. Come installare e configurare ownCloud con Apache su Ubuntu 18.04

  3. Come installare e configurare un server FTP (vsftpd) con SSL/TLS su Ubuntu 20.04

  4. Come installare Let's Encrypt SSL su Ubuntu 18.04 con Nginx

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

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 Let's Encrypt SSL con Nginx su Ubuntu 16.04 LTS

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