In questo tutorial impareremo come proteggere Apache HTTP server con TLS/SSL certificati offerti da Let's Encrypt in FreeBSD 11.x . Tratteremo anche come automatizzare il processo di rinnovo del certificato per Lets' 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 certbot utilità della riga di comando, che è un'applicazione che può facilitare il modo in cui puoi ottenere certificati affidabili gratuitamente.
Requisiti:
- Installazione di FreeBSD 11.x
- 10 cose da fare dopo l'installazione di FreeBSD
- Come installare Apache, MariaDB e PHP in FreeBSD
Fase 1:Configura Apache SSL su FreeBSD
1. Prima di iniziare a installare l'utilità certbot e creare il file di configurazione TSL per Apache , crea prima due directory distinte denominate sites-available e abilitati per i siti nella directory di configurazione radice di Apache eseguendo i comandi seguenti.
Lo scopo di queste due directory è quello di facilitare la gestione della configurazione dell'hosting virtuale nel sistema, senza modificare l'Apache principale 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 aggiungi 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
3. Quindi, abilita il TLS modulo per Apache creando di seguito un nuovo file denominato 020_mod_ssl.conf in modules.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 .
Listen 443 SSLProtocol ALL -SSLv2 -SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLPassPhraseDialog builtin SSLSessionCacheTimeout 300
4. Ora, decommenta l'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
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 nel seguente estratto:
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
Aggiungi la seguente configurazione di virtualhost al file bsd.lan-ssl.conf .
<VirtualHost *:443> ServerName www.yourdomain.com ServerAlias yourdomain.com DocumentRoot "/usr/local/www/apache24/data/" SSLEngine on 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" <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/usr/local/www/apache24/cgi-bin"> SSLOptions +StdEnvVars </Directory> 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" <Directory "/usr/local/www/apache24/data/"> Options Indexes FollowSymLinks MultiViews #AllowOverride controls what directives may be placed in .htaccess files. AllowOverride All #Controls who can get stuff from this server file Require all granted </Directory> ErrorLog "/var/log/apache/yourdomain.ssl-error.log" CustomLog "/var/log/apache/yourdomain.ssl-access_log" combined </VirtualHost>
Assicurati di sostituire la variabile del nome di dominio da Nomeserver , ServerAlias , Registro errori , Log personalizzato dichiarazioni di conseguenza.
Fase 2:Installa Lets'Encrypt su FreeBSD
6. Nel passaggio successivo, emetti il seguente comando per installare certbot utilità fornita da Let's Encrypt , che verrà utilizzato per ottenere Apache TSL certificati gratuiti per il tuo dominio.
Durante l'installazione di certbot una serie di prompt verrà visualizzata sullo schermo. Usa lo screenshot qui sotto per configurare certbot 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 # make install clean
7. Al termine del processo di compilazione, emetti il comando seguente per aggiornare certbot utility e certbot dipendenze richieste.
# pkg install py27-certbot # pkg install py27-acme
8. Per generare un certificato per il tuo dominio, emetti il comando come illustrato di seguito. Assicurati di fornire il percorso webroot corretto in cui i file del tuo sito web sono archiviati nel file system (DocumentRoot direttiva dal file di configurazione del tuo dominio) utilizzando -w
bandiera. Se hai più sottodomini, aggiungili tutti con -d
bandiera.
# certbot certonly --webroot -w /usr/local/www/apache24/data/ -d yourdomain.com -d www.yourdomain.com
Durante l'ottenimento del certificato, fornisci un indirizzo e-mail per il rinnovo del certificato, premi a per accettare i termini e le condizioni di Let's Encrypt e n
di non condividere l'indirizzo email dei partner Let's Encrypt.
Saving debug log to /var/log/letsencrypt/letsencrypt.log Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):[email protected] There seem to be problems with that address. Enter email address (used for urgent renewal and security notices) If you really want to skip this, you can run the client with --register-unsafely-without-email but make sure you then backup your account key from /etc/letsencrypt/accounts (Enter 'c' to cancel):[email protected] ------------------------------------------------------------------------------- Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree in order to register with the ACME server at https://acme-v01.api.letsencrypt.org/directory ------------------------------------------------------------------------------- (A)gree/(C)ancel:a
------------------------------------------------------------------------------- Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights. ------------------------------------------------------------------------------- (Y)es/(N)o:n
Obtaining a new certificate Performing the following challenges: http-01 challenge for www.domain.com Using the webroot path /usr/local/www/apache24/data for all unmatched domains. Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Your cert will expire on 2017-11-15. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /usr/local/etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
9. Dopo aver ottenuto i certificati per il tuo dominio, puoi eseguire il comando ls per elencare tutti i componenti del certificato (catena, chiave privata, certificato) come presentato nell'esempio seguente.
# ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/
Fase 3:aggiorna i certificati Apache TLS su FreeBSD
10. Per aggiungere i 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"
11. Infine, abilita il file di configurazione TLS, creando un collegamento simbolico per il file di configurazione TLS del tuo dominio a sites-enabled directory, controlla le configurazioni di Apache per possibili errori di sintassi e, se la sintassi è corretta, riavvia il demone Apache eseguendo i comandi seguenti.
# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/ # apachectl -t # service apache24 restart
12. Per verificare se il servizio Apache è in ascolto su HTTPS porta 443 , immetti il seguente comando per elencare i socket di rete httpd.
# sockstat -4 | grep httpd
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
14. Per ottenere ulteriori informazioni sul certificato Let's Encrypt emesso dalla riga di comando, utilizzare openssl comando come segue.
# openssl s_client -connect www.yourdomain.com:443
15. Puoi anche verificare se il traffico è crittografato con un certificato valido fornito da Let's Encrypt CA da un dispositivo mobile, come illustrato nello screenshot mobile sottostante.
È tutto! I client possono ora visitare il tuo sito Web in modo sicuro, perché il traffico che scorre tra il server e il browser del client è crittografato. Per attività più complesse relative all'utilità certbot, visitare il seguente collegamento:https://certbot.eff.org/