2012-10-17 16 views
9

Mam problemy z połączeniem się z testowym interfejsem TransUnion za pośrednictwem php przy użyciu 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 plik .p12, który zawiera certyfikat i klucz, ale nadal nie pozwala mi się połączyć. Próbowałem następujące:Jak wysłać do Transunion API z certyfikatem pkcs12 (p12)?

$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'); 

Potem próbowałem podłączenia za pośrednictwem terminalu na moim Mac przy użyciu:

curl -cert /Users/temp_user/cert.pem -key /Users/temp_user/key.pem https://netaccess-test.transunion.com 

Może ktoś proszę dać mi znać, co robię źle. Dzięki.

+0

Który błąd nie wrócisz? Z curl, spróbuj gęsty przełącznik (-v przy linii poleceń i powiązanej opcji w PHP z curl_setopt), aby dowiedzieć się więcej o tym, co dzieje się za kulisami. – hakre

+0

Zapomniałem wspomnieć, że użyłem OpenSSL w linii poleceń, aby utworzyć zarówno plik certyfikatu (cert.pem), jak i klucz (key.pem) z pliku .p12. Ale tak, otrzymałem następujące kiedy dodałem --verbose do wiersza poleceń: Certyfikat cyfrowy jest nieprawidłowy. Upewnij się, że masz właściwy certyfikat cyfrowy lub pobierz nowy certyfikat cyfrowy, a następnie prześlij ponownie transakcje. jeśli sytuacja się powtarza, powiadom biuro TransUnion Service Desk pod numerem 800-813-5604. * Zamykanie połączenia # 0 * SSLv3, alert TLS, Klient Witaj (1): – user1754111

+0

Sprawdź, czy przekonwertowałeś go poprawnie. Również z powodów testowych myślę, że możesz usunąć z nich hasło. Może być pomocny podczas rozwiązywania problemów. – hakre

Odpowiedz

1

Upewnij się wyodrębnić certyfikaty poprawnie z pliku p12 tak:

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:

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