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

Buenas a todos,

veréis, tengo un problema para conectar con un servidor mediante SSL. He buscado por el foro pero no he encontrado nada parecido.

El problema es que estoy intentando enviarle información al servidor a través de cURL pero ni siquiera consigo la autenticación con el certificado.

Para empezar, el certificado lo he obtenido a través de Firefox. Me he conectado a la url https:xxx y he exportado el certificado en ".pem". Con firefox puedo ver sin problemas la web bajo SSL pero el problema viene cuando intento conectar con curl.

El código que utilizo es el siguiente:

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_VERIFYHOSTtrue );        
curl_setopt($chCURLOPT_SSLCERT,  'cert/certificado.pem');
curl_setopt($chCURLOPT_POST);
curl_setopt($chCURLOPT_POSTFIELDSutf8_encode$msg ) );
        
$data  curl_exec$ch );
$error curl_errno$ch );
curl_close$ch ); 
Pero obtengo el error:
Error:unable to set private key file: 'cert/certificado.pem' type PEM

Al parecer debo de indicar también una key privada, pero ¿de donde la obtengo?, cuando exporto el certificado desde firefox no veo ninguna opción para exportar ninguna key y sin embargo Firefox puede ver la web via https, por lo que el tiene todo lo necesario para poder autenticarse.

Os agradecería vuestra ayuda ya que estoy un poco desesperado.

Gracias de antemano y un saludo.