Tengo un CERT y archivos de clave privada. Estoy usando cUrl y PHP para conectarme a otro servicio. Por el momento, no tengo certificado y la clave de archivos y funciona perfectamente bien con el código siguiente:Pasando .PEM y .KEY como una cadena en Curl usando PHP
$pemfile = "cert.pem";
$keyfile = "private_key.key";
$url = "someTestUrl";
$requestXml = "requestData";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_SSLCERT, $pemfile);
curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
curl_setopt($ch, CURLOPT_SSLKEY, $keyfile);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXml);
$ret = curl_exec($ch);
Mi pregunta es: ¿Puedo pasar cert y la clave en forma de cadenas en lugar de paso como archivos? He intentado simplemente pasando contenido de los archivos respectivos en forma de cadenas como esta:??
$pemfile = "-----BEGIN CERTIFICATE-----CERTDATAASSTRING-----END CERTIFICATE-----";
$keyfile = "-----BEGIN RSA PRIVATE KEY-----PRIVATEKEYINCODE-----END RSA PRIVATE KEY-----";
... y ni que decir ... no funcionó :(
Cualquier idea punteros sugerencias ???
¿Puedo preguntar qué archivo '.key' usted proporciona? Solo tengo el archivo '.pem'. –