HTTPS su XAMPP: come configurarlo

Configurare un certificato SSL su XAMPP per attivare HTTPS, è una necessità per tutti gli sviluppatori che desiderano testare i loro applicativi localmente in un ambiente che simula la realtà, ma prima…

HTTPS su XAMPP

Cos’è HTTPS e come attivarlo su XAMPP?

HTTPS (Hyper Text Transfer Protocol Secure) è un protocollo per la comunicazione sicura in internet che si basa sul funzionamento del protocollo HTTP, ma include un livello di sicurezza in più per proteggere i dati scambiati tra un browser ed un sito web. Tutto ciò avviene attraverso l’uso di un certificato SSL, che garantisce che i dati scambiati siano crittografati ed autentici e quindi protetti da eventuali tentativi di intercettazione.
In questo articolo/tutorial, ci saranno tutti i passi necessari a configurare HTTPS sul famoso webserver Apache su XAMPP.

Prima di iniziare, è importante segnalare che la configurazione di HTTPS su XAMPP è raccomandato solo per scopi di sviluppo e test di applicazioni che vengono eseguite localmente, in quanto il certificato che si andrà a generare sarà di tipo self-signed e quindi non riconosciuto come autorevole.

Requisiti:

Step 1: Generazione del certificato SSL

Per stabilire una connessione sicura con il server web Apache utilizzando il protocollo HTTPS, è necessario possedere ed aver installato un certificato SSL che in questo caso è firmato e rilasciato da localhost. Accedendo al percorso di installazione di XAMPP e aprendo la cartella apache è possibile trovare un file batch chiamato makecert.bat che una volta avviato permetterà di generare un certificato SSL:

Individuazione del file batch

Avviando il file batch sopra evidenziato, si aprirà una finestra del prompt di Windows che permetterà di configurare il certificato SSL self-signed da generare. La prima cosa che viene richiesta è la PEM password che è utilizzata per generare la chiave privata. È necessario quindi inserire una password che verrà poi richiesta alla fine della procedura:

Avvio del file batch

Una volta confermata la password compariranno i campi che andranno a caratterizzare il certificato SSL da generare. Il completamento non necessita di spiegazioni eccetto che per il campo Common Name che dev’essere compilato esclusivamente con localhost:

Generazione del certificato

Step 2: Installazione del certificato

Una volta generato il certificato SSL, è necessario installarlo tra i certificati delle autorità di certificazione attendibili in modo da riconoscerlo come valido e sicuro. Il primo passo è quello di cliccare due volte sul certificato generato e selezionare Installa certificato…:

certificato

Successivamente si dovrà installare il certificato nel computer locale:

aggiunta del certificato

E nella schermata successiva configurare i campi nel seguente modo:

aggiunta del certificato

Dopo aver completato la procedura premendo Avanti e poi Fine il certificato sarà riconosciuto come valido e sicuro:

gestione certificati windows

Step 3: Configurazione del file “http-vhost.conf”

Una volta installato correttamente il certificato SSL, è possibile configurare il file sopracitato in modo da permettere al server Apache di rispondere sulla porta 443 (HTTPS). Recandosi nel percorso di installazione xampp/apache/conf/extra è possibile trovare tale file ed aprirlo con il blocco note, aggiungendo in coda il seguente testo:

<VirtualHost *:443>    
    DocumentRoot "C:/xampp/htdocs/"
    ServerName localhost
	SSLEngine on
	SSLCertificateFile "conf/ssl.crt//server.crt"
	SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/xampp/htdocs/"
		Options All
		AllowOverride All
		Require all granted
	</Directory>
</VirtualHost>
httpd-vhosts.conf

Tale sezione indica anche il percorso del certificato SSL e la cartella che Apache utilizzerà per rispondere con la pagina web richiesta (in questo caso la cartella di default htdocs).

Test

Una volta riavviato XAMPP, è possibile accedere al web server in modo sicuro esclusivamente dalla macchina su cui è stato installato il certificato. Quindi l’indirizzo da digitare sul browser sarà https://localhost. Il webserver risponderà utilizzando il protocollo HTTPS:

N.B.

Come già detto in precedenza, questa procedura funziona solo per gli accessi da localhost, in quanto il certificato self-signed è stato rilasciato e reso attendibile direttamente dalla macchina locale. Accedendo da remoto all’indirizzo IP del server HTTPS non verrà attivato correttamente.