Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/08/2009, 02:31
napalm_jp
 
Fecha de Ingreso: noviembre-2005
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Conectar con curl a https con certificado

Bueno creo que he resuelto el problema del certificado. Os dejo aquí los pasos que he seguido para hacerlo funcionar:

1. Me he conectado con firefox a la web https:xxx y he exportado el certificado en formato X.509 Certificate (PEM) guardandolo con el nombre certificado.crt.

Para exportar el certificado solo es necesario hacer click con el botón derecho sobre la web y elegir View Page Info (tengo el firefox en inglés) . Después seleccionamos la pestaña Security y View Certificate. En la pestaña Details seleccionamos el item padre (el de más arriba de todos) en Certificate Hierarchy y pulsamos el botón export de más abajo.

2. He copiado el fichero .crt al directorio raíz de la aplicación en php

3. He modificado el código php que ha quedado tal que así:

Código PHP:
$ch curl_init();
curl_setopt($chCURLOPT_URL$this->_url );
curl_setopt($chCURLOPT_RETURNTRANSFER);
curl_setopt($chCURLOPT_TIMEOUT15 );
curl_setopt($chCURLOPT_HTTPHEADER$headers );
curl_setopt($chCURLOPT_SSL_VERIFYPEERtrue );
curl_setopt($chCURLOPT_SSL_VERIFYHOST);        
curl_setopt($chCURLOPT_CAINFOgetcwd().'/certificado.crt' );
curl_setopt($chCURLOPT_POST);
curl_setopt($chCURLOPT_POSTFIELDSutf8_encode$msg ) );
                        
$data  curl_exec$ch );
$error curl_errno$ch );
curl_close$ch ); 
Y eso es todo, ya puedo autentificar el servidor y poder enviarle información.

Un saludo.