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";
}
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