Configura Apache con certificato TLS / SSL autofirmato su Ubuntu 16.04

SSL e il suo successore TLS (Secure Sockets Layer / Transport Layer Security) aggiungono un livello di crittografia tra il client e il server. Senza questa tecnologia, i dati vengono inviati al server in testo semplice, consentendo a terzi di leggere tutte le informazioni inviate e ricevute dal server.

Questo tutorial ti insegnerà come creare un certificato SSL / TLS e attivarlo su Apache 2.4 su Ubuntu 16.04. Presumo che Apache sia già configurato e funzionante. Se vuoi imparare come installare uno stack LAMP, vedi questo documento Vultr .

Attenzione

I certificati SSL / TLS sono normalmente generati da un'autorità di certificazione (autorità di certificazione) attendibile. Generandolo da soli, sarai il firmatario, il che significa che il browser non sarà in grado di verificare se l'identità del certificato deve essere attendibile e avviserà l'utente. Sebbene sia possibile ignorare questo avviso, i siti pubblici devono utilizzare un certificato firmato da un'autorità di certificazione attendibile. Let's encrypt è una CA che offre certificati gratuitamente. Puoi imparare come installare il loro certificato in Apache e Ubuntu 16.04 qui .

Per le applicazioni interne, l'uso di un certificato autofirmato potrebbe essere valido, soprattutto se non si dispone di un nome di dominio.


Passaggio 1: generazione del certificato

  1. Innanzitutto, creiamo un posto dove archiviare il file.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Genera CSR e chiave privata.

    openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
    

    Chiederà informazioni per la richiesta di certificato. Completa con le informazioni appropriate.

    Country Name (2 letter code) [AU]: US
    State or Province Name (full name) [Some-State]: FL
    Locality Name (eg, city) []: Miami
    Organization Name (eg, company) [My Company]: My Company
    Organizational Unit Name (eg, section) []:
    

    Il nome comune dovrebbe essere il nome del tuo dominio o l'indirizzo IP del server. Inoltre, inserisci la tua email.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. Ora sposta il certificato nella cartella di configurazione di Apache.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. Il certificato è pronto! Successivamente, prepareremo Apache a lavorare con il certificato.

Passaggio 2: configurazione del firewall

  1. Dobbiamo assicurarci che la porta TCP 443 sia aperta. Questa porta viene utilizzata nelle connessioni SSL anziché nella porta 80. In questa esercitazione, useremo UFW.

  2. Assicurarsi che UFW sia abilitato.

    sudo ufw enable
    
  3. Ora consenti le impostazioni predefinite di Apache per il firewall.

    sudo ufw allow 'Apache Full'
    
  4. Digitando " sudo ufw status", è possibile visualizzare un elenco delle regole correnti. La tua configurazione dovrebbe assomigliare a questa:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. Dovresti anche consentire OpenSSH qui per connessioni future.

    sudo ufw allow 'OpenSSH'
    

Passaggio 3: configurazione dell'host virtuale Apache

  1. Passare alla directory di configurazione del sito Apache predefinita.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. Questo file indica al server dove cercare il certificato SSL. Con i commenti rimossi, dovrebbe apparire come la seguente configurazione.

    <IfModule mod_ssl.c>
      <VirtualHost _default_:443>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www/html
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    
       SSLEngine on
    
       SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
       </Directory>
    
     </VirtualHost>
    </IfModule>
    
  3. Modifica questa riga:

    ServerAdmin [email protected]
    
  4. Aggiungi questo proprio sotto la ServerAdminriga:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Ora modifica queste righe con la nostra posizione del certificato:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. Il nostro file finale dovrebbe assomigliare a questo:

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin [email protected]
      ServerName 203.0.113.122
    
      DocumentRoot /var/www/html
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
      SSLEngine on
    
      SSLCertificateFile    /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
      <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
      </FilesMatch>
      <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
      </Directory>
    
     </VirtualHost>
    </IfModule>
    
  7. Salva e chiudi il file.

Passaggio 4: abilitazione del modulo SSL di Apache

  1. Abilita il modulo SSL digitando:

    sudo a2enmod ssl
    
  2. Ora abilita il sito che abbiamo appena modificato:

    sudo a2ensite default-ssl.conf
    
  3. Riavvia Apache:

    sudo service apache2 restart
    
  4. Accediamo al nuovo sito Web sicuro! Aprilo nel tuo browser (assicurati di digitare https: // ).

    https://YOUR_SERVER_IP
    

Il tuo browser ti avviserà che il certificato non è valido, come previsto. Ciò accade perché il certificato non è firmato. Segui i passaggi offerti dal tuo browser per procedere al tuo sito.

Passaggio 5: reindirizzare tutto il traffico HTTP su HTTPS (facoltativo)

  1. Apri il file host virtuale predefinito di Apache:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Aggiungi questa riga all'interno del <VirtualHost *:80>tag:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Ricarica la configurazione di Apache:

    sudo service apache2 reload
    

Tutto il traffico del sito Web ora reindirizzerà automaticamente a HTTPS.



Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.