2012-10-17 24 views
9

Tôi gặp sự cố khi kết nối với API kiểm tra của TransUnion qua php bằng cách sử dụng cURL. Xin vui lòng cho tôi biết nếu có ai đã làm điều này. Tôi đã có sẵn tệp XML để gửi cho họ, tôi chỉ không biết vấn đề là gì vì tôi nhận được tệp .p12 từ họ chứa chứng chỉ và khóa nhưng vẫn không cho phép tôi kết nối. Tôi thử như sau:Làm thế nào để bạn gửi tới Transunion API với chứng chỉ 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'); 

Sau đó, tôi cố gắng kết nối thông qua Terminal trên mac của tôi sử dụng:

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

Ai đó có thể xin vui lòng cho tôi biết những gì tôi đang làm sai. Cảm ơn.

+0

Lỗi nào bạn nhận được? Với curl, hãy thử công tắc tiết (v tại dòng lệnh và tùy chọn liên quan trong PHP với curl_setopt) để tìm hiểu thêm về những gì đang diễn ra đằng sau hậu trường. – hakre

+0

Tôi quên đề cập đến rằng tôi đã sử dụng OpenSSL trên dòng lệnh để tạo cả tệp chứng chỉ (cert.pem) và khóa (key.pem) từ tệp .p12. Nhưng yeah, tôi nhận được sau khi tôi thêm --verbose vào dòng lệnh: Giấy chứng nhận kỹ thuật số không hợp lệ. Vui lòng đảm bảo bạn có chứng chỉ kỹ thuật số chính xác hoặc tải xuống chứng chỉ kỹ thuật số mới và sau đó gửi lại các giao dịch. nếu tình hình vẫn còn, hãy thông báo cho Bàn Dịch Vụ của TransUnion theo số 800-813-5604. * Kết nối đóng # 0 * SSLv3, cảnh báo TLS, Chào hỏi khách hàng (1): – user1754111

+0

Kiểm tra xem bạn đã chuyển đổi đúng chưa. Ngoài ra vì lý do kiểm tra, tôi nghĩ bạn có thể xóa mật khẩu khỏi những lý do này. Có thể hữu ích trong khi bạn gặp khó khăn. – hakre

Trả lời

1

Hãy chắc chắn rằng bạn trích xuất các chứng chỉ của bạn một cách chính xác từ các tập tin p12 như vậy:

Để trích xuất các chứng chỉ CA:

openssl pkcs12 -in NAME_OF_P12_FILE.p12 -cacerts -nokeys -out NAME_OF_PEM_FILE_TO_CREATE.pem 

Để trích xuất các Giấy chứng nhận cá nhân:

openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nokeys -out NAME_OF_PEM_FILE_TO_CREATE.pem 

Để trích xuất Khóa cá nhân:

Với mật khẩu: openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nocerts -out NAME_OF_PEM_FILE_TO_CREATE.pem

Không có mật khẩu: openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nocerts -nodes -out NAME_OF_PEM_FILE_TO_CREATE.pem

Các vấn đề liên quan