Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2008, 13:35
Avatar de MexicanDeveloper
MexicanDeveloper
 
Fecha de Ingreso: junio-2006
Mensajes: 17
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta SSL sobre TCP: Pasar un certificado PEM

Que tal,

Ojalá me pudieran ayudar o al menos orientar Necesito hacer una conexión a un servidor vía TCP/SSL a un servidor EPP, validando mi identidad con un certificado que me firmó la entidad a la que me estoy conectando.

Descargué una aplicación que ya hace la parte del EPP, pero no así la de la validación SSL

Esto se hacia, para PHP con fsokopen y un contexto, pero para PHP 5, los contextos ya no son válidos. Ahora se hace con stream_socket_client.

Ya poseo:
* Un CA.pem un cert.pem y un key.pem concatenados como indica php.net
* Mi IP se supone que ya esta validada en el firewall de la entidad receptora.
* SSL está habilitado en el PHP.ini
* Ya probé subiendo el timeout

El código es muy sencillo y no debería haber mayor problema:
Código PHP:
    $servidor "una ip";
    
$puerto un puerto;
    
$usuario "un usuario";
    
$pass "una clave";    

    
$timeout 60;
    
    
// Concatenar el certificado con la llave privada antes de enviarlo
    
$cert '/home/admin/domains/dominio.com/certchain.pem';


    
$context stream_context_create(array('ssl'=>array('local_cert'=> $cert)));

    
$where 'ssl://'.$servidor.':'.$puerto;
    
$fp stream_socket_client($where$errno$errstr$timeout,STREAM_CLIENT_CONNECT,$context);
    if(
$fp){
        echo 
"Si jaló";
        
    } else {
       echo 
"ERROR: $errno - $errstr<br />\n";
    } 
Pero estoy obteniendo este error:

Warning: stream_socket_client(): unable to connect to ssl://(IP):(PUERTO) (Connection timed out) in ....

¿Que puede ser? ¿Donde puedo obtener información de esto? Agradeceré infinitamente su apoyo

Última edición por MexicanDeveloper; 01/07/2008 a las 12:42 Razón: Hace mas legible el código. Y evito mostrar información no pública