2012-11-08 81 views
2

我有一個Vagrant框設置和運行。我正嘗試使用Guzzle連接到第三方服務的API。錯誤設置證書驗證位置(Vagrant,Guzzle,curl)

從我可以理解的是,有一些問題是從虛擬機和API服務器的流浪盒驗證證書或東西。

任何意見將不勝感激,謝謝。

這是我找回了錯誤:

Fatal error: Uncaught exception 'Guzzle\Http\Exception\CurlException' with message '[curl] 77: error setting certificate verify locations: 
    CAfile: phar:///vagrant/web/vendor/guzzle.phar/src/Guzzle/Http/Resources/cacert.pem 
    CApath: /etc/ssl/certs 
[url] https://www.domain.com/json/list?id=444&app_key=AAA [info] array (
    'url' => 'https://www.domain.com/json/list?id=444&app_key=AAA', 
    'content_type' => NULL, 
    'http_code' => 0, 
    'header_size' => 0, 
    'request_size' => 0, 
    'filetime' => -1, 
    'ssl_verify_result' => 0, 
    'redirect_count' => 0, 
    'total_time' => 0.141022, 
    'namelookup_time' => 0.048923, 
    'connect_time' => 0.141025, 
    'pretransfer_time' => 0, 
    'size_upload' => 0, 
    'size_download' => 0, 
    'speed_download' => 0, 
    'speed_upload' => 0, 
    'download_content_length' => -1, 
    'upload_content_length' => -1, 
    'starttransfer_time' => 0, 
    'redirect_time' => 0, 
    'certinfo' => 
    array (
), 
    'redirect_url' => '', 
) [debug] in phar:///vagrant/web/vendor/guzzle.phar/src/Guzzle/Http/Curl/CurlMulti.php on line 555 
+0

/etc/ssl/certs是否存在?如果是這樣,它有什麼權限? – burriko

+0

流浪漢@ precise64:在/ etc/SSL $ LS -li - > 1311584 drwxr-XR-X 2根根20480 11月8日10:23證書 –

+0

看起來不錯給我。問是因爲curl錯誤77是「讀取SSL CA證書(路徑訪問權限?)時出現問題」。 http://curl.haxx.se/libcurl/c/libcurl-errors.html – burriko

回答

1

這與以前版本的狂飲藥業文件的問題。 PHP的捲曲綁定沒有支持從藥業流封裝讀CACERT文件:

憑證檔案錯誤:藥業:///vagrant/web/vendor/guzzle.phar/src/Guzzle/Http/Resources/ cacert.pem

我已經更新了phar的更高版本,以便在系統上使用cacert包,如果您從phar運行。