2012-10-17 9 views
9

cURLを使用してPHP経由でTransUnionのテストAPIに接続する際に問題があります。もし誰かがこれをしてくれたら教えてください。私はすでに自分のXMLファイルを送信する準備ができていますが、証明書とキーが入っている.p12ファイルを受け取ったために問題は何か分かりませんが、まだ接続できません。私は、次のことを試してみました:pkcs12(p12)証明書を使用してTransunion APIにどのように送信しますか?

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

その後、私は使用して私のMac上でターミナルを経由して接続してみました:

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

は誰かに私は私が間違っているのか知っている聞かせていただけます。ありがとう。

+0

どのエラーが返されますか? curlを使用して、冗長スイッチ(curl_setoptを使用してコマンドラインで-vを、PHPでcurl_setoptで関連するオプション)を試して、舞台裏で何が起こっているのかを知ることができます。 – hakre

+0

コマンドラインでOpenSSLを使用して、.p12ファイルから証明書(cert.pem)とキー(key.pem)ファイルを作成することを忘れてしまいました。私は、コマンドラインに--verboseを追加したときしかし、ええ、私は次の受信: デジタル証明書が無効です。正しいデジタル証明書を持っているか、新しいデジタル証明書をダウンロードしてから、トランザクションを再送信してください。状況が続く場合は、TransUnion Service Desk(800-813-5604)に通知してください。 *接続を閉じる#0 * SSLv3、TLSアラート、クライアントhello(1): – user1754111

+0

正しく変換したかどうかを確認してください。また、テストの理由から、私はあなたがこれらからパスワードを削除できると思います。トラブルシューティング中に役立つことがあります。 – hakre

答えて

1

あなたがそうのようなP12ファイルから正しく証明書を抽出していることを確認してください:CA証明書を抽出するには

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

個人証明書を抽出するには:抽出するには

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

を秘密鍵:

パスワード:openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nocerts -out NAME_OF_PEM_FILE_TO_CREATE.pem

パスワードなし:openssl pkcs12 -in NAME_OF_P12_FILE.p12 -clcerts -nocerts -nodes -out NAME_OF_PEM_FILE_TO_CREATE.pem

関連する問題