L'angolo del N00b

Appunti di programmazione per principianti e non
 
IndiceIndice  CalendarioCalendario  FAQFAQ  CercaCerca  Lista UtentiLista Utenti  GruppiGruppi  RegistratiRegistrati  AccediAccedi  

Condividere | 
 

 Connessione HTTPS

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
Ale



Maschile
Numero di messaggi : 24
Età : 38
Data d'iscrizione : 23.02.09

MessaggioTitolo: Connessione HTTPS   Gio Lug 30, 2009 1:17 pm

Come implementare al webserver Apache2 il supporto per il protocollo https tramite OpenSSL in ambiente Windows.
In pratica si tratta di prendere Apache2 e implementargli direttamente OpenSSL, da qui nacque ApacheSSL.

Vediamo cosa ci occorre per far girare assieme al nostro Apache il sistema SSL.

1) Scaricare una delle versioni (Apache, Apache2.0 o Apache2.2) di ApacheSSL dal sito ufficiale.

2) Una volta scaricato ed estratto l'archivio copiare la cartella ApacheSSL in C:\

3) Aprire con l'editor preferito il file di configurazione, httpd.conf che si trova all'interno della cartella conf

4) Localizzare la riga #LoadModule ssl_module modules/mod_ssl.so e decommentarla togliendo il # iniziale.

5) Localizzare la riga Listen 80 e subito sotto aggiungere:
Listen 443

6) Creare 2 virtual host, uno per le connessioni su porta standard (80) e l'altro per le connessioni protette sulla porta 443, a fine del file httpd.conf aggiungiamo:

<VirtualHost localhost:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot C:\ApacheSSL\htdocs
</VirtualHost>

<VirtualHost localhost:443>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot C:\ApacheSSL\htdocs
SSLEngine On
SSLCertificateFile conf/ssl/localhost.cert
SSLCertificateKeyFile conf/ssl/localhost.key
</VirtualHost>

Salviamo e chiudiamo.

Fino a questo punto niente di complicato, ora arriva il momento di creare un certificato di prova.


Apriamo il prompt dei comandi, Start -> Esegui -> cmd [invio]
Spostiamoci nella cartella bin di ApacheSSL digitando cd C:\ApacheSSL\bin


Eseguiamo i seguenti 3 comandi:

openssl req -config openssl.cnf -new -out localhost.csr
openssl rsa -in privkey.pem -out localhost.key
openssl x509 -in localhost.csr -out localhost.cert -req -signkey localhost.key -days 365


Soffermiamoci un momento su questi 3 passaggi per spiegare cosa è stato fatto;

openssl req -config openssl.cnf -new -out localhost.csr
Questo crea una richiesta di certificazione del certificato e ne crea una vostra chiave privata che fa riferimento al nome del vostro dominio e del certificato stesso, pertanto se alla richiesta del browser il nome del certificato e il nome del vostro dominio non corrispondono il browser vi darà un messaggio di avviso: Il nome del certificato di protezione non è valido o non corrisponde al nome del sito.

openssl rsa -in privkey.pem -out localhost.key
Questo passaggio legge dal file di input la chiave privata per scriverla in localhost.key mediante RSA

openssl x509 -in localhost.csr -out localhost.cert -req -signkey localhost.key -days 365
Questo ultimo passaggio genera un certificato auto firmato che potete usare per le prove. Il certificato ha una validità di 365 giorni, se volete prolungarne la durata incrementate il numero dei giorni in base alle vostre esigenze.

I files creati che saranno necessari sono localhost.key e localhost.cert che si trovano in C:\ApacheSSL\bin. Creiamo nella directory C:\ApacheSSL\conf una cartella chiamata ssl e succesivamente ci copieremo all'interno i files localhost.key e localhost.cert


L'ultimo passo è quello d'installare il servizio di ApacheSSL tra i vari del sistema.
Sempre dal prompt dei comandi, puntato in C:\ApacheSSL\bin eseguiamo:

apache.exe -k install (per Apache e Apache 2.0)
httpd.exe -k install (per Apache 2.2)

Se tutto è andato bene il prompt vi deve restituire una scritta come questa:
Installing the ApacheSSL service
The ApacheSSL service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.

Ora aprite il monitor (ApacheMonitor.exe, solo per Apache 2+) di ApacheSSL e fate lo start, se tutto è andato bene dovreste avere una server signature simile:
ApacheSSL/2.2.x (win) mod_ssl/2.2.2 OpenSSL/0.9.8b

Per testare la connessione sotto SSL vi basta puntare il browser su https://localhost:443

E' tutto!

Note:
Se utilizzate Internet Explorer 7 e tentate di aprire una connessione su https://localhost:443 IE non ne sarà molto felice, vi dirà che il certificato non è valido e sicuro ecc ecc, vi basta cliccare su:

Continue to this website (not recommended).

per continuare senza problemi ma nella barra degli vi verrà mostrata la scritta "Certificate Error".


Riferimenti:
-------------
- Sito ufficiale di Apache (ASF) http://www.apache.org
- Sito ufficiale di OpenSSL http://www.openssl.org
- Sito ufficiale del progetto ApacheSSL http://apachessl.sf.net
Tornare in alto Andare in basso
Vedi il profilo dell'utente
 
Connessione HTTPS
Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 di 1
 Argomenti simili
-
» Perché ogni volta che rispondo al telefono la mia connessione Wireless salta?
» Come localizzare la connessione di un IP
» Testare velocità connessione Telecom | SpeedTest.net
» Protocollo HTTPS risulta scaduto con Google Chrome e non mi fa accedere a Facebook - Soluzione

Permessi di questa sezione del forum:Non puoi rispondere agli argomenti in questo forum
L'angolo del N00b :: Html Netbook :: Soluzioni-
Andare verso: