[Problema] Conectar a MySQL con SSL desde PHP

Hola buenas.
Con el propósito de proteger la comunicación entre dos hosts, donde en uno hay la web (192.168.1.60) y el otro la Base de Datos MySQL (192.168.1.36), miré la manera, y parecía que activando el SSL sobre MySQL sería la solución.
Pues bien después de muchas pruebas finalmente he conseguido compilar y arrancar el servidor MySQL a fin de que soportase SSL. Después hice lo propio para el cliente y parece que todo estaba bien.
El problema que no hay manera de solucionar ahora, es:

La conexión a la BD de MySQL desde la línea de comandos funciona sin problema con SSL:
user@ubuntu-server:~/SSL/newcerts$ /usr/local/mysql/bin/mysql -h 192.168.1.36 -v
--user=remoto -p --ssl-ca=cacert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 361
Server version: 5.0.45 Source distribution

Reading history-file /home/user/.mysql_history
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> \s
--------------
/usr/local/mysql/bin/mysql  Ver 14.12 Distrib 5.0.45, for pc-linux-gnu (i686) using 
EditLine wrapper

Connection id:          361
Current database:
Current user:           remoto@192.168.1.60
SSL:                    CIPHER IN USE IS EDH-RSA-DES-CBC3-SHA
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.45 Source distribution
Protocol version:       10
Connection:             192.168.1.36[3] via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
TCP port:               3306
Uptime:                 1 day 43 min 57 sec

Threads: 21  Questions: 10803  Slow queries: 0  Opens: 255  Flush tables: 1  Open tables:
64  Queries per second avg: 0.121
--------------

Como se puede ver en
SSL: CIPHER IN USE IS EDH-RSA-DES-CBC3-SHA
la conexión esta cifrada.

Pero des de PHP no funciona. En principio está bien instalado el mysqli
(http://php.liukang.com/manual/es/ref.mysqli.php) pero cundo intento utilizar SSL se
queda colgado, se queda esperando respuesta y no acaba.
El código utilizado es:
<?php

$link = mysqli_init();

mysqli_ssl_set($link, ‘server-key.pem’, ‘server-sert.pem’, ‘cacert.pam’, NULL, NULL);

mysqli_real_connect($link,'192.168.1.36','remoto'’,password','drupal_BD',NULL,NULL,MYSQLI_CLIENT_SSL);
// … Continua
?>


Si en el ultimo atributo de mysqli_real_connect pongo NULL si que va, ya que ni intenta utilizar SSL.
Por cierto, que parece que ignora lo que pongo en mysqli_ssl_set, ya que si en lugar de poner ‘server-key.pem’ pongo ‘loquesea’ no tira ningún error…

Ya no se que mas probar. Si alguien me puede echar una mano se lo agradecería mucho.

Gracias.
0 respuestas