Mam problemy z połączeniem z TransUnionemprzetestuj API przez php za pomocą cURL. Daj mi znać, jeśli ktoś już to zrobił. Mam już gotowy plik XML do wysłania, po prostu nie wiem, jaki jest problem, ponieważ otrzymałem od nich plik .p12, który zawiera certyfikat i klucz, ale nadal nie pozwala mi się połączyć. Próbowałem:
$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");
Następnie próbowałem połączyć się przez Terminal na moim komputerze Mac za pomocą:
curl -cert /Users/temp_user/cert.pem -key /Users/temp_user/key.pem https://netaccess-test.transunion.com
Czy ktoś może mi powiedzieć, co robię źle? Dzięki.
Odpowiedzi:
1 dla odpowiedzi № 1Upewnij się, że poprawnie wyodrębniłeś certyfikaty z pliku p12 w następujący sposób:
Aby wyodrębnić certyfikat CA:
openssl pkcs12 -in NAME_OF_P12_FILE.p12 -cacerts -nokeys -out NAME_OF_PEM_FILE_TO_CREATE.pem
Aby wyodrębnić certyfikat osobisty:
openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nokeys -out NAME_OF_PEM_FILE_TO_CREATE.pem
Aby wyodrębnić klucz prywatny:
Z hasłem: openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nocerts -out NAME_OF_PEM_FILE_TO_CREATE.pem
Bez hasła: openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nocerts -nodes -out NAME_OF_PEM_FILE_TO_CREATE.pem