GNU/Linux >> Linux Esercitazione >  >> AlmaLinux

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

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 AlmaLinux 8.

Prerequisiti

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

Aggiornamento del sistema operativo

Aggiorna il tuo AlmaLinux sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo dnf update && sudo dnf upgrade -y

Il tutorial utilizzerà il comando sudo e supponendo che tu abbia lo stato sudo . Per verificare lo stato di sudo sul tuo account:

sudo whoami

Esempio di output che mostra lo stato di sudo:

[joshua@localhost ~]$ sudo whoami
root

Se non hai impostato un account utente sudo e lo desideri, visita il nostro tutorial su Come aggiungere un utente ai sudoer su AlmaLinux .

Per utilizzare l'account root , usa il comando seguente con la password di root per accedere.

su

Installa Apache (HTTPD)

Apache, per impostazione predefinita, si trova nel flusso dell'app AlmaLinux 8. 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 dnf install httpd

Esempio di output:

Digita "Y" , quindi premi "INVIO CHIAVE" per procedere.

Successivamente, per impostazione predefinita Apache (HTTPD) viene disabilitato e non attivato. Innanzitutto, avvia il servizio.

sudo systemctl start httpd

Facoltativamente, abilita Apache all'avvio del sistema.

sudo systemctl enable httpd

Esempio di output in caso di successo:

Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

Verifica se Apache2 funziona correttamente utilizzando il seguente systemctl comando:

systemctl status httpd

Esempio di output se tutto è a posto:

Configura le regole del firewall

Non aggiunge automaticamente regole firewall alle porte standard 80 o 443 durante l'installazione di Apache. Prima di continuare, dovresti impostare le seguenti regole, questo dipenderà dalle porte che utilizzerai, ma tutte le opzioni sono elencate.

Apri la porta 80 o HTTP:

sudo firewall-cmd --permanent --zone=public --add-service=http

Apri la porta 443 o HTTPS:

sudo firewall-cmd --permanent --zone=public --add-service=https

Ricarica il firewall per rendere effettive le modifiche

sudo firewall-cmd --reload

Verifica server Web Apache

Ora che hai installato e configurato, è 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 dnf 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.

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 thanks to Linuxcapable.com</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. Per impostazione predefinita, le directory richieste dovranno essere create e configurate.

Innanzitutto, rendi le directory necessarie per i siti disponibili e abilitati per i siti. Anche gli utenti di Nginx avrebbero familiarità con questa configurazione.

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled

Il passaggio successivo che devi fare è indicare ad Apache di cercare i file dell'host virtuale che dovranno trovarsi in /etc/httpd/sites-available directory.

Apri il file di configurazione.

sudo nano /etc/httpd/conf/httpd.conf

Aggiungi quanto segue alla fine del file.

IncludeOptional sites-enabled/*.conf

Facoltativamente, puoi disabilitare la cartella predefinita in cui Apache cerca i file degli host virtuali che forse voleva evitare confusione. Inserisci un commento accanto a IncludeOptional conf.d/*.conf .

Esempio:

#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf

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

Quindi, usa il tuo editor di testo preferito per creare un file di configurazione dell'host virtuale che si trova in /etc/httpd/sites-available/example_domain.conf come di seguito:

sudo nano /etc/httpd/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 /var/www/example_domain/error.log
    CustomLog /var/www/example_domain/requests.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

Il passaggio successivo è abilitare l'host virtuale. Inizialmente, hai creato due directory, sites-available e abilitati per i siti. Ora dovrai creare un collegamento simbolico a abilitati per i siti per attivare l'host virtuale.

Per creare un collegamento simbolico, utilizza il seguente esempio nel tuo terminale.

sudo ln -s /etc/httpd/sites-available/example_domain.conf /etc/httpd/example_domain.conf

Al termine, riavvia il servizio Apache.

sudo systemctl restart httpd

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 EPEL repository e mod_ssl pacchetto per pacchetti e sicurezza più aggiornati.

sudo dnf install epel-release mod_ssl -y

Quindi, installa il pacchetto certbot come segue:

sudo dnf 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 .

Facoltativamente, puoi impostare un processo cron per rinnovare automaticamente i certificati. Certbot offre uno script che lo fa automaticamente e puoi prima testare per assicurarti che tutto funzioni eseguendo una corsa a secco.

sudo certbot renew --dry-run

Se tutto funziona, apri la finestra di crontab utilizzando il seguente comando da terminale.

sudo crontab -e

Quindi, specifica l'ora in cui dovrebbe rinnovarsi automaticamente. Questo dovrebbe essere controllato almeno quotidianamente e, se il certificato deve essere rinnovato, lo script non aggiornerà il certificato. Se hai bisogno di aiuto per trovare un buon momento per impostare, usa lo strumento gratuito crontab.guru.

00 00 */1 * * /usr/sbin/certbot-auto renew

Salva (CTRL+O) quindi esci da (CTRL+X), e il cronjob verrà abilitato automaticamente.

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/www/example_domain con custom.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 httpd

Per avviare il server web Apache:

sudo systemctl start httpd

Per riavviare il server web Apache:

sudo systemctl restart httpd

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

sudo systemctl reload httpd

Per disabilitare Apache all'avvio del server:

sudo systemctl disable httpd

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

sudo systemctl enable httpd

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

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

sudo dnf upgrade

Come rimuovere (disinstallare) Apache

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

sudo dnf autoremove httpd

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


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

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

  3. Come installare Apache con Let's Encrypt su RHEL 8

  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 Let's Encrypt SSL con Lighttpd su CentOS 7

Come installare Nginx con Let's Encrypt SSL su Fedora 35

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 Apache con Let's Encrypt SSL Certificate su CentOS 8