2017-11-28 6 views
2

私はcURL認証を試みますが、SSL証明書に問題があります。SSLを使用したcURL返信私は場所を確認します

私はこのコードを持っている:

$username = "123"; 
$password = "123"; 
$host = "https://api.shipnow.com.ar/users/authentication"; 

$headers = array(
    'Content-Type:application/json', 
    'Authorization: Basic '. base64_encode("$username:$password") // <--- 
); 

$process = curl_init($host); 
curl_setopt($process, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($process, CURLOPT_HEADER, 1); 
curl_setopt($process, CURLOPT_TIMEOUT, 30); 
curl_setopt($process, CURLOPT_POST, 1); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($process, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($process, CURLOPT_CAINFO, '/cacert.pem'); 
curl_setopt($process, CURLOPT_CAPATH, '/cacert.pem'); 
$return = curl_exec($process); 
$error = curl_error($process); 
curl_close($process); 

var_dump($error); 

しかし、この私を返す:証明書の場所を確認する設定

エラー: CAfile:/cacert.pem CApath:/cacert.pem

私はこのリンクからcacert.pemをダウンロードします:

https://curl.haxx.se/docs/caextract.html

そして、私は私のプロジェクトのフォルダに入れて、誰もが問題を解決する方法を知っている

index.phpに?

よろしくお願いします。

+0

あなたはその証明書でacomplisthしようとしていますか?なぜあなたはそれが必要なのですか? – Juan

答えて

0

ファイルが存在しない可能性があります。このコードとチェックファイルを試すことができますか?

$username = "123"; 
$password = "123"; 
$host = "https://api.shipnow.com.ar/users/authentication"; 

$headers = array(
    'Content-Type:application/json', 
    'Authorization: Basic '. base64_encode("$username:$password") // <--- 
); 

// Check File 
if(!file_exists('/cacert.pem')) die('File not exists.'); 

$process = curl_init($host); 
curl_setopt($process, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($process, CURLOPT_HEADER, 1); 
curl_setopt($process, CURLOPT_TIMEOUT, 30); 
curl_setopt($process, CURLOPT_POST, 1); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($process, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($process, CURLOPT_CAINFO, '/cacert.pem'); 
curl_setopt($process, CURLOPT_CAPATH, '/cacert.pem'); 
$return = curl_exec($process); 
$error = curl_error($process); 
curl_close($process); 

var_dump($error); 
+0

こんにちは、はい、これはファイルが存在しないことを返します。どこにこのファイルを置く必要がありますか? –

+0

ファイル名 '/ cacert.pem'を' cacert.pem'に置き換えます。これを試してください。私はその道が間違っていると思う。 –

関連する問題