2017-02-12 6 views
0

を識別することができないため、私はウェブ開発に慣れていません。私はこのエラーを取得しています:cURL SSLの問題:ローカル発行者

SSL problem: can't identify local issuer 

私は、画像を保存したり、ユーザーのFacebookの画像を取得するための関数を呼び出した後:

file_get_contents() 

私がやったことです:

  • 私はAzureの上で実行されている私のウェブサイトを持っている* .azurewebsites.com
  • 私は両方のGoDaddyは
  • から購入された私のカスタムドメインとSSL証明書を追加しました
  • 私はに.CRTファイルを追加したことでそれを署名し、.P7Bファイルと.CRTファイル
  • を得るためにそれをダウンロードし
  • 私のMac上でOpenSSLを使用して(GoDaddyのはを求めた)証明書署名要求(CSR)を作成しましたAzureのすべてが、Facebookのアカウントでログインし、だから、これらの工程の後に

その横に私のカスタムドメインは現在、ロックを持って、正常に動作しますが、そのエラーも私は一時的な修正をしたました:

curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false); 

ですもちろん推薦されませんが、それは私はサイトの残りの部分をテストします。このエラーは引き続き発生しましたが、file_get_contents()を呼び出すときだけです。私はこれらの修正を試してみたものを試しました。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/cacert/cacert.pem"); 

サイコロはありません。誰かがエラーの意味を正確に説明することができますか?それは素晴らしいだろう。また、これはOpenSSLで証明書署名リクエストを作成している可能性があります。ご確認ください。

ありがとうございました!

+0

なぜファイルを取得するときにssl pemを使用していますか? https://を使用しないと、サーバーに既にインストールされているはずです。なぜこのようにしているのだろうと思っていますか? – unixmiah

+0

私はParse Server PHP SDKを使用しています。curl_setopt($ ch、CURLOPT_CAINFO、getcwd()。 "/cacert/cacert.pem"); ParseClient.phpでファイルを取得するときに、私はfile_get_contents($ _FILES ['userImg'] ['tmp_name'])またはfile_get_contents( 'https://graph.facebook.com/'。$ user ['id ']。'/picture?type = large&return_ssl_resources = 1 ') – adambargh

答えて

0

curl_setoptフラグは、これらの呼び出しに渡すハンドラでのみ機能します。 file_get_contentsは、CURLOPT_SSL_VERIFYPEERまたはCURLOPT_SSL_VERIFYHOSTフラグのいずれかについては考えていません。

file_get_contentsをcurl呼び出しに変更します。

+0

私はfile_get_contentsを模倣する別の関数を作成したいのですか? – adambargh

+0

作成せず、既存のものを使用します。 –

+0

もう少し詳しく説明できますか?私はPHPとカールに精通していない – adambargh

関連する問題