Configurare Apache per l’utilizzo di Https/SSL su Windows grazie a OpenSSL

Come tutti gli sviluppatori web sanno, al fine di far girare gli script che necessitano di linguaggi lato server come PHP e MySQL è necessario installare un web server locale sulla propria macchina. Un’operazione piuttosto semplice se ci si affida a software conosciuti come Xampp, Mamp o WampServer, appena più complicata nel caso si decida per un’installazione manuale (una recente guida scritta sul blog, spiega come fare passo per passo).

Veniamo al punto: ci sono progetti di siti e applicazioni web, per esempio gli e-commerce o tutti quei siti dove l’utente trasmette dati sensibili, che necessitano di un ambiente sicuro, ovvero di una cifratura SSL per lo scambio di dati, ma come facciamo a configurarne uno sulla nostra macchina locale? Come otteniamo un indirizzo che cominci con https:// al posto del più comune http://?

Per fortuna ci viene in aiuto OpenSSL una libreria Open Source scritta in linguaggio C che implementa le principali funzioni crittografiche.

In questa guida creeremo un virtual host di Apache su Windows che scambia dati crittografati con il client utilizzando il protocollo Https/SSL.

Il primo passo consiste nell’apertura di un Prompt dei comandi, poi ci spostiamo nella cartella bin dell’installazione di Apache, che nel mio caso si trova al percorso C:\Apache24\bin, ma potrebbe cambiare da un’installazione ad un’altra.

cd C:\Apache24\bin

Impostiamo due variabili d’ambiente che ci serviranno durante la configurazione di SSL

set OPENSSL_CONF=C:\Apache24\conf\openssl.cnf set RANDFILE=C:\Apache24\bin\.rnd

e richiediamo il certificato

openssl req -new -out server.csr

Alla richiesta di rilascio del certificato dovremo inserire una password associata alla chiave privata ed una serie di campi che identificano la provenienza e la proprietà del certificato, tra questi nel campo Common name andremo ad inserire il nome di dominio associato al certificato.

Ora possiamo generare la chiave con il comando

openssl rsa -in privkey.pem -out server.key

ed il certificato con validità di un anno

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365

Il lavoro da Prompt dei comandi è terminato, possiamo chiudere il prompt e spostare i file server.crt e server.key appena creati dalla cartella C:\Apache24\bin alla cartella C:\Apache24\conf.

In questa cartella troveremo il file httpd.conf, lo apriamo con un editor testuale e ci assicuriamo che le seguenti righe all’interno di esso siano decommentate, in caso contrario provvediamo ad eliminare il segno # all’inizio di ognuna di esse

Include conf/extra/httpd-ssl.conf LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Salviamo e chiudiamo il file.

Manca poco, ci rimane solamente da configurare la cartella che ospiterà il nostro sito sicuro. Per comodità, ho creato una cartella nel percorso C:\Apache24\htdocs\testssl.locl e due cartelle all’interno di essa: una denominata cert nella quale ho copiato i file server.crt e server.key creati precedentemente tramite lo script OpenSSL e un’altra logs dove verranno scritti i log relativi al sito.

Apriamo con un editor testuale il file C:\Apache24\conf\extra\httpd-vhosts.conf e come descritto nell’articolo che spiegava come configurare un Virtual Host su Apache, aggiungiamo le seguenti righe per continuare a garantire il normale funzionamento della cartella htdocs

<VirtualHost *:80>     DocumentRoot "C:/Apache24/htdocs"     ServerName localhost </VirtualHost>

e queste altre per creare il virtual host testssl.locl che ospiterà i file del nostro sito sicuro

<VirtualHost _default_:443>     ServerAdmin info@testssl.locl     DocumentRoot "C:/Apache24/htdocs/testssl.locl"     ServerName testssl.locl     ServerAlias www.testssl.locl     ErrorLog "C:/Apache24/htdocs/testssl.locl/logs/error.log"     CustomLog "C:/Apache24/htdocs/testssl.locl/logs/access.log" common          SSLEngine on     SSLCertificateFile "C:/Apache24/htdocs/testssl.locl/cert/server.crt"     SSLCertificateKeyFile "C:/Apache24/htdocs/testssl.locl/cert/server.key"     <Directory "C:/Apache24/htdocs/testssl.locl">         DirectoryIndex index.html index.php         Require all granted         AllowOverride all     </Directory> </VirtualHost>

Salviamo e chiudiamo il file. Apriamo il file C:\Windows\System32\drivers\etc\hosts (attenzione: il file necessita di essere aperto con privilegi di amministrazione per potere essere modificato) e aggiungiamo le seguenti righe

127.0.0.1 testssl.locl 127.0.0.1 www.testssl.locl

Salviamo e chiudiamo anche questo file e avviamo Apache.

Creiamo un file index.php all’interno della cartella testssl.locl con dentro la riga <?php phpinfo(); ?>

Se tutto è andato a buon fine, collegandoci con un browser all’indirizzo https://testssl.locl/ visualizzeremo una schermata simile alla seguente

Virtual Host Https/SSL Apache Windows

Come ci viene segnalato dalla barra degli indirizzi del browser, il certificato non è attendibile in quanto non autorizzato da alcun ente preposto, ma possiamo comunque utilizzare l’host per lo sviluppo locale in tutta tranquillità.

Baty’s Base


Stai cercando prodotti per l’hacking, la sicurezza informatica e il penetration testing? Hai bisogno di bonificare il tuo smartphone, il tuo pc o il tuo sito da virus e malware? Devi rintracciare una persona o recuperare delle informazioni urgenti? Devi riprendere possesso di un account, una mail o di una password che ti hanno sottratto? Vuoi acquistare device già configurati per sperimentare tutte le tecniche di hacking in modo facile e veloce? Hai esigenze particolari in ambito software o hardware? Possiamo aiutarti!

Contattaci subito per avere un aiuto immediato : dettagliaci tramite mail o Whatsapp che tipo di supporto ti occorre e ti invieremo un riscontro immediato!

Compila e invia il modulo qui sotto per inviarci subito una richiesta di supporto

Scrivi il tuo indirizzo email qui

Scrivi qui come possiamo aiutarti - ti supportiamo immediatamente per ogni tua esigenza!

chevron_left
chevron_right