Gracias por abrir esta llamada de auxilio
Necesito llevar a cabo una conexión segura, vía SSL a un servidor. Ya lo logré vía consola:
Código:
[root@hostname]# openssl s_client -connect di.rec.cion.ip:puerto -cert cert.pem -key privkey.pem
CONNECTED(00000003)
Pero vía código no lo he logrado y todos los códigos de ejemplo los encuentro para PHP4 (fsokopen) en lugar de PHP5 (stream_socket_client)
Éste es el código que utilizo:
Código PHP:
// ....
// $cert es un archivo de texto con la llave, el certificado y la CA concatenados
$context = stream_context_create();
$result = stream_context_set_option($context, 'ssl', 'local_cert',$cert);
if($passPhrase) $result = stream_context_set_option($context,'ssl','passphrase',$passPhrase);
$result = stream_context_set_option($context, 'ssl','verify_peer',false);
$result = stream_context_set_option($context, 'ssl','verify_host',false);
$result = stream_context_set_option($context, 'ssl','allow_self_signed',true);
$where = 'ssl://'.$host.':'.$port;
$fp = @stream_socket_client($where, $errno, $errstr, $timeout,STREAM_CLIENT_CONNECT, $context);
// ...
Si uso como protocolo "tcp" si obtengo respuesta, pero no es la que esperaba (ni debería ser ese protocolo), pero si uso como protocolo ssl (el que debería ser) me regresa error en la conexión.
A decir verdad soy nuevo en transportes seguros.... ¿Alguien puede orientarme un poco si voy bien?