Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

SSL su Apache

Come abilitare mod_ssl sul nostro web server Apache, in modo da abilitare SSL e quindi supportare il protocollo sicuro HTTPS.
Come abilitare mod_ssl sul nostro web server Apache, in modo da abilitare SSL e quindi supportare il protocollo sicuro HTTPS.
Link copiato negli appunti

L'implementazione del protocollo HTTPS in Apache è relegata al modulo mod_ssl. Originariamente concepito come modulo opzionale, e pertanto da compilare ed installare separatamente, mod_ssl è oggi parte integrante del server Apache stesso (a partire dalla versione 2.0). Ciò rende più semplice l'attivazione e la configurazione del protocollo HTTPS, in quanto non richiede l'installazione di software aggiuntivo.

Attivazione

Come accade per altri moduli del server Apache, anche mod_ssl va esplicitamente abilitato nel file di configurazione prima di essere utilizzato. La direttiva utilizzata per attivare un modulo è LoadModule. In particolare, per caricare il modulo mod_ssl, bisogna aggiungere al file di configurazione httpd.conf la riga:

LoadModule ssl_module modules/mod_ssl.so

Ricordiamo, però, che la configurazione di Apache può essere suddivisa in più file, grazie al meccanismo di inclusione. Questo sistema è largamente sfruttato dalle versioni installate con le principali distribuzioni Linux, poichè garantisce una migliore manutenibilità. Nel caso specifico, è possibile che sia già presente un file di configurazione relativo al modulo mod_ssl, pronto per essere "incluso" nella configurazione di Apache.

Ad esempio, in ambiente Fedora la directory /etc/httpd/conf.modules.d contiene un file per ogni modulo da caricare. Quindi è buona norma inserire la direttiva LoadModule in un file presente in questa directory (ad esempio, /etc/httpd/conf.modules.d/00-ssl.conf) piuttosto che direttamente nel file httpd.conf.

Configurazione delle porte

Come già visto nella lezione sulle porte, è necessario inoltre specificare le porte TCP sulle quali il server si metterà in ascolto. In particolare, per ricevere richieste HTTPS è necessario abilitare la porta 443, con la direttiva Listen. Ad esempio:

Listen 443

Tuttavia, è bene sottolineare che è anche possibile lavorare con porte non standard (ad esempio, 8443). L'attivazione o meno del protocollo HTTPS non è infatti legata al numero di porta in sé, ma alla specifica configurazione del VirtualHost in oggetto.

Configurazione del VirtualHost

Per attivare HTTPS su un VirtualHost è necessario aggiungere almeno tre direttive alla sua configurazione:

  • SSLEngine, usata per abilitare o disabilitare il layer di trasporto sicuro (SSL o TLS);
  • SSLCertificateFile, che indica il percorso del certificato del server;
  • SSLCertificateKeyFile, che indica il percorso della chiave privata corrispondente alla chiave pubblica contenuta certificato;

Ad esempio, per il server www.miosito.it potremmo avere:

Listen 443
<VirtualHost *:443>
    ServerName www.miosito.it
    SSLEngine on
    SSLCertificateFile "/etc/apache2/ssl/www.miosito.it.cert"
    SSLCertificateKeyFile "/etc/apache2/ssl/www.miosito.it.key"
</VirtualHost>

Supponendo che la coppia di file certificato + chiave privata siano archiviati nella directory /etc/apache2/ssl/.

Ciò rappresenta il minimo indispensabile per attivare HTTPS: attivazione di SSL e specifica dei file di certificato e chiave privata. Esistono altre direttive che consentono di controllare aspetti avanzati del funzionamento del modulo mod_ssl. Ad esempio, la direttiva SSLCipherSuite permette di specificare quali algoritmi di cifratura supportare e quali invece disabilitare.

Ti consigliamo anche