Come proteggere Apache con SSL e Let's Encrypt in FreeBSD

In questo tutorial impareremo come proteggere Apache HTTP server con TLS/SSL certificati offerti da Criptiamo in FreeBSD 11.x. Tratteremo anche come automatizzare il processo di rinnovo del certificato per Let's Encrypt.

Leggi anche: Installa Let's Encrypt per Nginx su FreeBSD

TLS/SSL i certificati vengono utilizzati dal server web Apache per crittografare la comunicazione tra i nodi finali, o più ordinario tra il server e il client per fornire sicurezza. Let's Encrypt fornisce certibot utilità della riga di comando, che è un'applicazione che può facilitare il modo in cui è possibile ottenere certificati attendibili gratuitamente.

Requisiti:

  1. Installazione di FreeBSD 11.x
  2. 10 cose da fare dopo l'installazione di FreeBSD
  3. Come installare Apache, MariaDB e PHP in FreeBSD

Passaggio 1: configura Apache SSL su FreeBSD

1. Prima di iniziare a installare l'utility certbot e creare il file di configurazione TSL per Apache, crea prima due directory distinte denominate siti-disponibili e siti abilitati nella directory di configurazione root di Apache emettendo i comandi seguenti.

Lo scopo di queste due directory è quello di facilitare la gestione della configurazione dell'hosting virtuale nel sistema, senza modificare il principale Apache httpd.conf file di configurazione ogni volta che aggiungiamo un nuovo host virtuale.

# mkdir /usr/local/etc/apache24/sites-available. # mkdir /usr/local/etc/apache24/sites-enabled. 

2. Dopo aver creato entrambe le directory, apri Apache httpd.conf file con un editor di testo e aggiungere la riga seguente vicino alla fine del file come illustrato di seguito.

# nano /usr/local/etc/apache24/httpd.conf. 

Aggiungi la seguente riga:

IncludeOptional etc/apache24/sites-enabled/*.conf. 
Configura Apache su FreeBSD
Configura Apache su FreeBSD

3. Quindi, abilita il TLS modulo per Apache creando quanto segue un nuovo file denominato 020_mod_ssl.conf in moduli.d directory con il seguente contenuto.

# nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf. 

Aggiungi le seguenti righe al file 020_mod_ssl.conf.

Ascolta 443. Protocollo SSL ALL -SSLv2 -SSLv3. SSLCipherSuite ALTO: MEDIO:!aNULL:!MD5. SSLPassPhraseDialog integrato. SSLSessionCacheTimeout 300. 
Configurazione SSL di Apache su FreeBSD
Configurazione SSL di Apache su FreeBSD

4. Ora, decommenta il SSL modulo da /usr/local/etc/apache24/httpd.conf file rimuovendo l'hashtag dall'inizio della riga seguente come illustrato di seguito:

LoadModule ssl_module libexec/apache24/mod_ssl.so. 
Abilita modulo SSL su Apache
Abilita modulo SSL su Apache

5. Quindi, crea il TLS file di configurazione per il tuo dominio in siti-disponibili directory, preferibilmente con il nome del tuo dominio, come presentato nell'estratto seguente:

# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf. 

Aggiungi la seguente configurazione del virtualhost al file bsd.lan-ssl.conf.

 ServerName www.yourdomain.com ServerAlias ​​yourdomain.com DocumentRoot "/usr/local/www/apache24/data/" SSLEngine su SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem" SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"  Opzioni SSL +StdEnvVars.  Opzioni SSL +StdEnvVars. BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/var/log/apache/httpd-ssl_request.log" \ "%t %h %{SSL_PROTOCOL} x %{SSL_CIPHER}x \"%r\" %b" Opzioni Indici FollowSymLinks MultiViews #AllowOverride controlla quali direttive possono essere inserite nei file .htaccess. AllowOverride All #Controls che possono ottenere cose da questo file del server Richiedi tutto concesso ErrorLog "/var/log/apache/yourdomain.ssl-error.log" CustomLog "/var/log/apache/yourdomain.ssl-access_log" combinato 

Assicurati di sostituire la variabile del nome di dominio da Nome del server, Alias ​​del server, ErrorLog, Log personalizzato dichiarazioni di conseguenza.

Passaggio 2: installa Let'Encrypt su FreeBSD

6. Nel passaggio successivo, emetti il ​​seguente comando per installare certibot utilità fornita da Criptiamo, che servirà per ottenere Apache TSL certificati gratuiti per il tuo dominio.

Durante l'installazione certibot una serie di prompt verrà visualizzata sullo schermo. Usa lo screenshot qui sotto per configurare certibot utilità. Inoltre, la compilazione e l'installazione dell'utilità certbot potrebbe richiedere del tempo, a seconda delle risorse della macchina.

# cd /usr/ports/security/py-certbot. # rendi l'installazione pulita. 
Installa Certbot su FreeBSD
Installa Certbot su FreeBSD

7. Al termine del processo di compilazione, emettere il comando seguente per aggiornare certibot utilità e certibot dipendenze richieste.

# pkg installa py27-certbot. # pkg installa py27-acme. 

8. Per generare un certificato per il tuo dominio, impartisci il comando come illustrato di seguito. Assicurati di fornire la posizione webroot corretta in cui i file del tuo sito web sono archiviati nel file system (DocumentRoot direttiva dal file di configurazione del dominio) utilizzando il comando -w bandiera. Se hai più sottodomini aggiungili tutti con il -D bandiera.

# certbot certonly --webroot -w /usr/local/www/apache24/data/ -d tuodominio.com -d www.tuodominio.com. 

Durante l'ottenimento del certificato, fornire un indirizzo e-mail per il rinnovo del certificato, premere a per accettare i termini e le condizioni di Let's Encrypt e n per non condividere l'indirizzo email dei partner Let's Encrypt.

Output comando Certbot

Salvataggio del log di debug in /var/log/letsencrypt/letsencrypt.log. Inserisci l'indirizzo e-mail (utilizzato per rinnovi urgenti e avvisi di sicurezza) (Inserisci 'c' a. Annulla):[e-mail protetta]
Sembra che ci siano problemi con quell'indirizzo. Inserisci l'indirizzo email (utilizzato per. rinnovi urgenti e avvisi di sicurezza) Se vuoi davvero saltare questo, puoi farlo. esegui il client con --register-unsafely-senza-email ma assicurati di farlo. eseguire il backup della chiave dell'account da /etc/letsencrypt/accounts (inserire 'c' per annullare):[e-mail protetta] Si prega di leggere i Termini di servizio all'indirizzo. https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. Devi essere d'accordo. per registrarsi al server ACME all'indirizzo. https://acme-v01.api.letsencrypt.org/directory. (A)accetta/(C)annulla: un Saresti disposto a condividere il tuo indirizzo e-mail con la Electronic Frontier Foundation, partner fondatore del progetto Let's Encrypt e l'organizzazione no-profit che sviluppa Certbot? Vorremmo inviarti e-mail su EFF e sul nostro lavoro per crittografare il web, proteggere i suoi utenti e difendere i diritti digitali. (Si No: n Ottenimento di un nuovo certificato Esecuzione delle seguenti verifiche: http-01 challenge per www.domain.com Utilizzo del percorso webroot /usr/local/www/apache24/data per tutti i domini non corrispondenti. In attesa di verifica... Ripulire le sfide NOTE IMPORTANTI: - Congratulazioni! Il tuo certificato e la tua catena sono stati salvati in /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Il tuo certificato scadrà il 15-11-2017. Per ottenere una versione nuova o ottimizzata di questo certificato in futuro, è sufficiente eseguire nuovamente certbot. Per rinnovare in modo non interattivo *tutti* i tuoi certificati, esegui "certbot rinnova" - Le credenziali del tuo account sono state salvate nella directory di configurazione di Certbot in /usr/local/etc/letsencrypt. Dovresti fare un backup sicuro di questa cartella ora. Questa directory di configurazione conterrà anche i certificati e le chiavi private ottenute da Certbot, quindi l'ideale è eseguire backup regolari di questa cartella. - Se ti piace Certbot, considera di supportare il nostro lavoro: Donando a ISRG / Let's Encrypt: https://letsencrypt.org/donate Donando all'EFF: https://eff.org/donate-le

9. Dopo aver ottenuto i certificati per il tuo dominio, puoi eseguire ls comando per elencare tutti i componenti del certificato (catena, chiave privata, certificato) come mostrato nell'esempio seguente.

# ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/
Elenco certificati e chiavi di dominio
Elenco certificati e chiavi di dominio

Passaggio 3: aggiorna i certificati Apache TLS su FreeBSD

10. Per aggiungere certificati Let's Encrypt al tuo sito web, apri il file di configurazione di apache per il tuo dominio e aggiorna le seguenti righe per riflettere il percorso dei certificati emessi.

# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf. 

Aggiungi queste righe di certificato TLS:

SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem" SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"
Configura certificato SSL per dominio
Configura certificato SSL per dominio

11. Infine, abilita il file di configurazione TLS, creando un collegamento simbolico per il file di configurazione TLS del tuo dominio a siti abilitati directory, controllare le configurazioni di Apache per eventuali errori di sintassi e, se la sintassi è corretta, riavviare il demone Apache emettendo i comandi seguenti.

# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/ # apachectl -t. # servizio apache24 riavvio.

12. Per verificare se il servizio Apache è in ascolto HTTPS porta 443, emettere il seguente comando per elencare i socket di rete httpd.

# calzino -4 | grep httpd. 
Controlla le porte di Apache
Controlla le porte di Apache

13. Puoi accedere al tuo indirizzo di dominio da un browser tramite il protocollo HTTPS per confermare che i certificati Let's Encrypt siano stati applicati correttamente.

https://www.yourdomain.com. 
Verifica HTTPS Criptiamo il certificato
Verifica HTTPS Let's Encrypt Certificate

14. Per ottenere ulteriori informazioni sul certificato Let's Encrypt emesso dalla riga di comando, utilizzare il pulsante si apre comando come segue.

# openssl s_client -connect www.yourdomain.com: 443. 
Seleziona Let's Encrypt Informazioni sul certificato
Seleziona Let's Encrypt Informazioni sul certificato

15. Puoi anche verificare se il traffico è crittografato con un certificato valido fornito da Criptiamo CA da un dispositivo mobile come illustrato nello screenshot del dispositivo mobile sottostante.

Verifica consente di crittografare il traffico HTTPS
Verifica consente di crittografare il traffico HTTPS

È tutto! I clienti possono ora visitare il tuo sito Web in modo sicuro, perché il traffico che scorre tra il server e il browser del cliente è crittografato. Per attività più complesse relative all'utilità certbot, visitare il seguente collegamento: https://certbot.eff.org/

Teachs.ru