因此,我對網絡開發很陌生,因此對我一無所知。有一次我調用函數cURL SSL問題:無法識別本地發行人
SSL problem: can't identify local issuer
保存圖像或檢索用戶的Facebook圖片:我得到這個錯誤
file_get_contents()
我所做的是:
- 我讓我的網站在Azure上運行* .azurewebsites.com
- 我添加了我的自定義域和ssl證書,這兩個證書都是從GoDaddy購買的
- 我創建使用OpenSSL證書籤名請求(CSR)(其中GoDaddy的問)在我的Mac
- 與它簽署並下載它得到.p7b文件和.crt文件
- 我加入了.CRT文件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創建我的證書籤名請求...不確定。請確認。
謝謝!
爲什麼你在獲取文件時使用ssl pem?爲什麼不使用https://它應該已經安裝在服務器上。我想知道你爲什麼這樣做? – unixmiah
所以我使用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