Header
Configurare MySQL e SSL in Windows
in: Guide RDBMS Sicurezza  So/Code: Generico Data: 26/07/2010
Ora: 14.01:13
Articolo visualizzato: 6820 volte

Rendiamo sicure le nostre comunicazioni con i server mysql - questa guida vi aiuta a configurare SSL in mysql.

  1. Scaricare ed installare Mysql_essential dalla versione 5.0 in poi (mysql-essential-5.1.49-win32.msi);
  2. Se non già installato, Scaricare ed installare OpenSSL per Windows (win32openssl_ligth_0.9.8o).
     
A seconda dell’architettura della macchina che si sta usando, scegliere il pacchetto installer indicato. Ecco i link:
 

 

Se durante l’installazione di OpenSSL compare il messaggio di errore: 
 
..critical component is missing: Microsoft Visual C++ 2008 Redistributables 
 
annullare il setup e scaricare ed installare Microsoft Visual C++ 2008 Redistributables;
Anche qui dipende dall’architettura della macchina che si sta usando. Ecco i link:
 
Dopo aver installato il pacchetto addizionale, eseguire nuovamente il setup di OpenSSL.
Durante il wizard di installazione, lasciare la path d’installazione così come di default C:OpenSSL , e lasciare anche leave come di default l’opzione 'Copy OpenSSL DLL files to the Windows system directory'. 
 
Quando l’installazione è finite, aggiungere C:OpenSSLbin alle Windows System Path variable della macchina che ospita il server. Per far questo seguire le seguenti istruzioni: 
 
  1. Click tasto destroy su Risorse del Computer e selezionare Proprietà; 
  2. Dal menù che compare, Selezionare Avanzate, e cliccare su Variabili d’ambiente; 
  3. Selezionare Path,e click su Modifica. 
  4. Aggiugere in cosa alle path presenti ;C:OpenSSLbin e premere OK. 
  5. Assicurasi che OpenSSL è stato correttamente integrato nelle Path d’ambiente aprendo una nuova shell ed eseguire le seguenti istruzioni:
    C:Windowssystem32>cd
    C:>openssl
    OpenSSL> exit <<< se si visualizza il prompt OpenSSL, l’installazione ha avuto successo.

Creazione dei Certificati

Successivamente all’installazione di  OpenSSL, è necessario creare I certificate che serviranno per le connessioni sicure.Come prima cosa, creiamo sul server una cartella per i certificati:
 
shell> md c:newcerts
shell> cd c:newcerts
 

Creazione dei certificati (CA)

E’ importante inserire tutte le informazioni richieste dalla procedura di creazione dei certificati e che le stesse siano valide e corrette.
 
# Create CA certificate
shell> openssl genrsa 2048 > ca-key.pem
shell> openssl req -new -x509 -nodes -days 1000 -key ca-key.pem > ca-cert.pem
 

Creazione del certificato per il server

# Create server certificate
shell> openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem > server-req.pem
 
shell> openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
 

Creazione del certificato per il client

# Create client certificate

shell> openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem > client-req.pem
 
shell> openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem
 
A questo punto tutti i certificati necessari sono stati create.
 

Configurazione del file my.ini

Adesso passiamo a configurare il file my.ini di mySQL
 
  1. Aggiungere le seguenti istruzioni in coda al file ini di mysql (my.ini)
    ssl-ca="c:/newcerts/ca-cert.pem"
    ssl-cert="c:/newcerts/server-cert.pem"
    ssl-key="c:/newcerts/server-key.pem"
  2. 2. Riavviare il Servizio mysql
     

A questo punto si può testare che l’SSL per il server mysql sia stato correttamente configurato.

Per verificare la corretta configurazione del server con SSL, bisogna esaminare le variabili di mysql che gestiscono l’ssl quindi dalla shell di mysql, eseguire la query
 
SHOW variables LIKE '%ssl%';
 
l’output atteso deve essere il seguente:
+---------------+-----------------------------+
| Variable_name | Value                       |
+---------------+-----------------------------+
| have_openssl  | YES                         |
| have_ssl      | YES                         |
| ssl_ca        | c:/newcerts/ca-cert.pem     |
| ssl_capath    |                             |
| ssl_cert      | c:/newcerts/server-cert.pem |
| ssl_cipher    |                             |
| ssl_key       | c:/newcerts/server-key.pem  |
+---------------+-----------------------------+
7 rows in set (0.00 sec)

 

Se il valore della variabile have_openssl è YES, il server supporta correttamente le connessioni SSL. Se invece il valore è DISABLED, il server supporta comunque le connessioni SSL ma non è stato avviato con le corrette opzioni di --ssl-xxx.  

  • --ssl-ca identifies the Certificate Authority (CA) certificate. 
  • --ssl-cert identifies the server public key. This can be sent to the client and authenticated against the CA certificate that it has. 
  • --ssl-key identifies the server private key. 

Connessione del client

Affinché un client possa connettersi al server Mysql così creato, è necessario chew abbia ovviamente a disposizione I certificate cliente precedentemente create e, utilizzare la seguente stringa di connessione. 
Stringa di connessione da usare nel client:
 
mysql -u root -p -h 192.168.0.116 --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
 
 
 
Ricordiamoci di avere con noi i certificati e di lanciare il comando nella directory dei certificati se no essi non verranno trovati.
 
Si  noti che il certificate CA (Certificate Authority) deve essere lo stesso utilizzato per il server. 
Per verificare se il client si è connesso al server utilizzando una connessione SSL, è sufficiente analizzare il valore della variabile di stato Ssl_cipher. 
 
mysql> SHOW STATUS LIKE 'Ssl_cipher';
 
+---------------+--------------------+
| Variable_name | Value              |
+---------------+--------------------+
| Ssl_cipher    | DHE-RSA-AES256-SHA |
+---------------+--------------------+


 
Se il valore di Ssl_cipher non è vuoto, l’SSL è in uso viceversa no.
Per qualsiasi informazione o domanda postare nel forum.
 
Guida realizzata da Datacom(Flavio Mandato) in collaborazione Con GuiZ ( Guido Camerlingo)

Commenti Commenti (2) | User Autore: Flavio Mandato (Datacom)
Tags: MySQL SSL openssl windows xp connessioni sicure protette





Articoli Correlati
[JAVA] Installare MySQL Java Connector su NetBeans
[MySQL] - Funzione REPLACE lo string replace di MySQL
Windows - Configurare ODBC driver a 32bit in windows 64bit
IIS - Installare php_mssql PhP 5.3 su IIS
Configurare MySQL e SSL in Windows

Commenti
Da: Enrico Ora:10.51:57 Data: 10/03/2011

Ciao Flavio,
la guida è ok, ma i link per scaricare i files non esistono più ;)

Da: Guiz Ora:12.58:52 Data: 10/03/2011

http://www.slproweb.com/products/Win32OpenSSL.html

Qui trovi i link!CHe sono cambiati!


Scrivi Commento
Codice Verifica

Commento massimo 5000 caratteri.(Tutti i campi contrassegnati da * sono obbligatori).

   

Ricerca

Glossario Naviga nel nostro glossario!
Scopri il gergo dei Geek!


 ULTIMI ARTICOLI

140 giorni fa

 [EN] Last Articles

 Siti Amici

Visita il Blog Roll
Contattaci! Diventa nostro amico!



 Hot Downloads

3785

 Categorie

85
163
58
87
13
2
20
36
1
2
5
5
128
7
24
15
62
45

 Code

11
11
3
6
2
24
1
7

 Games

19
45
13

 GUIDE


 Novità Downloads

65
59
3785

 Tags Cloud

Herschel video Foundation nebulosa single-board Metadata dialect increment 25 25 xcode not Raspberry programmare by update



 CopyRight

Valid XHTML 1.0 Transitional CSS Valido! [Valid RSS] Creative Commons License


Geek-Blog by Flavio Mandato, Giuseppe Vaccaro, Guido Camerlingo, Stefano Natale, Domenico Cavallo is licensed under a Creative Commons Attribuzione-Non opere derivate 2.5 Italia License.
Based on a work at www.geek-blog.it.
Permissions beyond the scope of this license may be available at http://www.geek-blog.it/

Disclaimer - Responsabilità - Pagina generata in 0.103 secondi. Geek-Blog.it