CONFIGURAZIONE WAMP SERVER + SSL (HTTPS)
CONFIGURAZIONE WAMP SERVER + SSL (HTTPS)
CONFIGURAZIONE WAMP SERVER + SSL (HTTPS)
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>CONFIGURAZIONE</strong> <strong>WAMP</strong> <strong>SERVER</strong> + <strong>SSL</strong> (<strong>HTTPS</strong>)<br />
Questa guida consente di configurare Wampserver per Windows XP, con il<br />
protocollo https (ovvero connessione sicura o protetta).<br />
Effettuare una copia di backup dei 3 file di configurazione di apache<br />
(httpd.conf , php.ini , httpd_ssl.conf). Ad esempio:<br />
1. C:\wamp\bin\apache\apache2.2.11\conf\httpd.conf<br />
2. C:\wamp\bin\apache\apache2.2.11\conf\extra\httpd_ssl.conf<br />
3. C:\wamp\bin\php\php5.3.0\php.ini<br />
1° OPERAZIONE (CREAZIONE DEL CERTIFICATO)<br />
Aprire una finestra DOS da Start->Esegui e digitare cmd.<br />
Dopo digitare cd \ in modo tale da trovarsi su C:\<br />
A CURA DI PASQUALE CARUCCI<br />
A questo punto andiamo nella directory bin come mostrato nell’immagine<br />
sottostante.
Adesso siamo pronti per creare un certificato con firma digitale.<br />
Digitare la seguente riga per creare una chiave criptata a 1024 bits:<br />
• openssl genrsa –des3 –out server.key 1024<br />
Dopo l’esecuzione vi verrà chiesto di inserire una password a vostra scelta, (2<br />
volte, per evitare errori di digitazione), (vedere figura sottostante).<br />
Adesso creiamo una copia di questa chiave (1) e dopo generiamo la chiave in<br />
uscita (2), ottenuta dalla copia stessa. Questa operazione ci evita di inserire la<br />
password nella successiva fase.<br />
1. copy server.key server.key.org<br />
2. openssl rsa –in server.key.org –out server.key
L’ultima operazione da fare per creare il certificato è digitare la seguente riga,<br />
(fare attenzione, è abbastanza lunga quindi si usi copia/incolla). Ovviamente<br />
facendo attenzione ad aver usato gli stessi nomi di questa guida per quanto<br />
riguarda la chiave (server.key).<br />
• openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt<br />
-config C:\wamp\bin\apache\apache2.2.11\conf\openssl.cnf<br />
Per l’attributo days è possibile specificare anche 999 come numero, in pratica<br />
sarebbe il tempo di validità di questo certificato. Ovviamente a me fra 1 anno<br />
scadrà e quindi dovrò rifarne uno nuovo.<br />
A questo punto dopo l’esecuzione del comando verranno chieste alcune cose.<br />
L’unica cosa da inserire è il parametro localhost quando vi chiede il Common<br />
Name.
Dopo questa operazione abbiamo completato la creazione del certificato che ci<br />
servirà per l’esecuzione del protocollo <strong>HTTPS</strong>. Nella directory<br />
C:\wamp\bin\apache\apache2.2.11\bin avremo due file necessari per il<br />
prosieguo delle operazioni (server.key e server.crt).<br />
2° OPERAZIONE (COPIA DEI DUE FILE NELLA CARTELLA CONF)<br />
Creare due directory nel percorso:<br />
c:\wamp\bin\apache\apache2.2.11\conf<br />
1. ssl.crt<br />
2. ssl.key<br />
e copiare i due file creati in precedenza server.key nella directory ssl.key e<br />
server.crt in ssl.crt<br />
Risultato finale.
3° OPERAZIONE (MODIFICA FILE HTTPD.CONF E PHP.INI)<br />
1) Andare in c:\wamp\bin\apache\apache2.2.11\conf il file in questione è<br />
httpd.conf, aprirlo con un editor di testo. Cercare la seguente linea di<br />
codice:<br />
#LoadModule ssl_module modules/mod_ssl.so<br />
rimuovere il commento (#) per abilitare l’istruzione.
Sempre nel file httpd.conf cercare la riga:<br />
• #include conf/extra/httpd-ssl.conf<br />
Togliere il cancelletto (#) e copiarla in basso dopo la fine del codice<br />
come illustrato nella figura sottostante. Fate caso alla freccia per<br />
capire come posizionare l’istruzione.<br />
Salvare le modifiche effettuate in httpd.conf .<br />
2) Aprire php.ini che è situato nella directory:<br />
• c:\wamp\bin\apache\apache2.2.11\bin\php.ini<br />
cercare la linea di codice: ;extension=php_openssl.dll<br />
Chiudere\Salvare php.ini.
4° OPERAZIONE (MODIFICA DEL FILE HTTPD_<strong>SSL</strong>.CONF)<br />
Andiamo nella cartella: c:\wamp\bin\apache\apache2.2.11\conf\extra aprire<br />
httpd_ssl.conf.<br />
Cercare la linea di codice dove c’è scritto: “<strong>SSL</strong>Mutex …” modificarla in modo<br />
tale da avere “<strong>SSL</strong>Mutex default”. Solitamente questa è un opzione che allo<br />
stato attuale è già impostata con questo parametro ma meglio controllare.<br />
Subito sotto trovare queste linee di codice:<br />
<br />
# General setup for the virtual host<br />
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"<br />
ServerName localhost:443<br />
ServerAdmin me@localhost<br />
ErrorLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/error.log"<br />
TransferLog "C:/Program Files/Apache Software<br />
Foundation/Apache2.2/logs/access.log"<br />
Modificarle in modo opportuno ecco come:<br />
<br />
# General setup for the virtual host<br />
DocumentRoot “C:/wamp/www/”<br />
ServerName localhost:443<br />
ServerAdmin me@localhost<br />
ErrorLog “logs/sslerror.log”<br />
TransferLog “logs/sslaccess.log”
Il risultato finale sarà come questo mostrato in figura sotto:<br />
Mentre questa è la versione di codice precedente prima della modifica:<br />
Se le mettiamo a confronto vediamo che le modifiche sono state apportate a<br />
DocumentRoot , ErrorLog e TransferLog specificando le opportune directory.
Modificare ancora altre due righe:<br />
• <strong>SSL</strong>CertificateFile “C:/Program File…”<br />
• <strong>SSL</strong>CertificatekeyFile “Program File…”<br />
Eccole mostrate qui sotto:<br />
Riscriverle in questo modo:<br />
• <strong>SSL</strong>CertificateFile “conf/ssl.crt/server.crt”<br />
• <strong>SSL</strong>CertificatekeyFile “conf/ssl.key/server.key”<br />
Ecco qui sotto la modifica apportata:
Cercare questo blocco di codice:<br />
<br />
<strong>SSL</strong>Options +StdEnvVars<br />
<br />
<br />
<strong>SSL</strong>Options +StdEnvVars<br />
<br />
modificarlo nel seguente modo:<br />
<br />
<strong>SSL</strong>Options +StdEnvVars<br />
Options Indexes FollowSymLinks MultiViews<br />
AllowOverride All<br />
Order allow,deny<br />
allow from all<br />
Cercare l’ultima riga da modificare:<br />
• CustomLog "C:/Program Files/Apache Software …”<br />
Riscriverla in questo modo:<br />
• CustomLog “logs/ssl_request_log” \<br />
"%t %h %{<strong>SSL</strong>_PROTOCOL}x %{<strong>SSL</strong>_CIPHER}x \"%r\" %b"
5° OPERAZIONE (VERIFICA DEL LAVORO SVOLTO E RIAVVIO <strong>WAMP</strong>)<br />
Verificare tutto il lavoro in modo ottimale altrimenti , controllare se c’è stato<br />
qualche errore durante la modifica del codice nei file sopra elencati.<br />
Si raccomanda la precisione nell’esecuzione delle istruzioni date<br />
precedentemente.<br />
Da Start->esegui<br />
Digitare cmd<br />
• C:\wamp\bin\apache\apache2.2.11\bin<br />
• E poi digitiamo httpd –t<br />
Se è visualizzato “ Syntax OK “ il codice non ha errori.<br />
Ecco la foto:<br />
Riavviare i servizi di <strong>WAMP</strong> e controllare digitando https://localhost se il server<br />
risponde in maniera positiva.<br />
Fare un test usando i cookie in php con il parametro SECURE.
RISULTATO FINALE<br />
Se il risultato finale sarà questo, il lavoro svolto in precedenza è corretto. Nulla<br />
di preoccupante se viene visualizzato un errore di protezione, i browser<br />
accettano solo certificati rilasciati da determinate Autority. Mentre il nostro<br />
certificato che è stato generato da noi stessi non viene riconosciuto.