unable problem issuer cacert and php apache api ssl curl

php - cacert - ssl certificate problem: unable to get local issuer certificate curl



¿Cómo enviar una solicitud curl con certificado de pem a través de PHP? (2)

Creo que debes usar el tmpfile() y stream_get_meta_data .

$pemFile = tmpfile(); fwrite($pemFile, "test.pem");//the path for the pem file $tempPemPath = stream_get_meta_data($pemFile); $tempPemPath = $tempPemPath[''uri'']; curl_setopt($ch, CURLOPT_SSLCERT, $tempPemPath);

Fuente: Esta respuesta aquí en SO me ayuda con un problema similar.

Tengo un script php en mi servidor Apache que tiene que enviar una solicitud curl al servidor de un compañero. Socio dame un archivo .pem que tengo que adjuntar a cada llamada que hago a su api.

Mi script php es el siguiente:

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSLCERT, "test.pem" ); curl_setopt($ch,CURLOPT_SSLCERTTYPE,"PEM"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, True); curl_setopt($ch, CURLOPT_POST, True); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $json); curl_setopt($ch, CURLOPT_VERBOSE, true); $result = curl_exec($ch); if(!$result) { echo "Curl Error: " . curl_error($ch); } else { echo "Success: ". $result; } curl_close($ch);

Vuelve:

Curl Error: no se puede establecer el archivo de clave privada: ''test.pem'' tipo PEM

Considere que me envía un archivo .pem y dice "no tiene contraseña"