php - example - ¿Cómo se envía a Transunion API con el certificado pkcs12(p12)?
php curl example (1)
Tengo problemas para conectarme a la API de prueba de TransUnion a través de php usando cURL. Por favor, avíseme si alguien ya ha hecho esto. Ya tengo mi archivo XML listo para enviar, simplemente no sé cuál es el problema porque recibí un archivo .p12 de ellos que contiene el certificado y la clave, pero aún así no me permite conectarme. Intenté lo siguiente:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_SSLCERT, getcwd().''/certs/cert.pem'');
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, ''test_pass'');
curl_setopt($ch, CURLOPT_SSLKEYTYPE, ''PEM'');
curl_setopt($ch, CURLOPT_SSLKEY, getcwd().''/certs/key.pem'');
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, ''test_pass'');
Luego intenté conectarme a través de Terminal en mi mac usando:
curl -cert /Users/temp_user/cert.pem -key /Users/temp_user/key.pem https://netaccess-test.transunion.com
¿Puede alguien decirme lo que estoy haciendo mal? Gracias.
Asegúrese de extraer sus certificados correctamente del archivo p12 de la siguiente manera:
Para extraer el certificado de CA:
openssl pkcs12 -in NAME_OF_P12_FILE.p12 -cacerts -nokeys -out NAME_OF_PEM_FILE_TO_CREATE.pem
Para extraer el certificado personal:
openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nokeys -out NAME_OF_PEM_FILE_TO_CREATE.pem
Para extraer la clave privada:
Con una contraseña: openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nocerts -out NAME_OF_PEM_FILE_TO_CREATE.pem
Sin una contraseña: openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nocerts -nodes -out NAME_OF_PEM_FILE_TO_CREATE.pem