17.01.2013 Views

CONFIGURAZIONE WAMP SERVER + SSL (HTTPS)

CONFIGURAZIONE WAMP SERVER + SSL (HTTPS)

CONFIGURAZIONE WAMP SERVER + SSL (HTTPS)

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!