2017-08-06 2 views
2

Ich habe ein Skript in PHP, das eine Curl-Anfrage an einen Webservice macht. Die Anfrage wird von meinem Server gestellt, auf dem ein SSL installiert ist und der Webservice, den ich auch sende, hat ebenfalls ein SSL.PHP Curl certinfo leer

$ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, "https://webservice.com?wsdl"); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_TIMEOUT, 60000); 
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//My post data 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
     curl_setopt($ch, CURLOPT_CAINFO, "../cacerts.pem"); 
     curl_setopt($ch, CURLOPT_CAPATH, "../cacerts.pem"); 
     $headers = []; 
     array_push($headers, 'Content-Type: text/xml;charset=UTF-8'); 
     array_push($headers, 'SoapAction: *'); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
     $content = trim(curl_exec($ch)); 
     var_dump($content); 
     var_dump(curl_getinfo($ch)); 
     var_dump(curl_errno($ch)); 
     var_dump(curl_error($ch)); 
     curl_close($ch); 

Die Debug-Informationen, die ich erhalten, ist als Gebrüll:

array (size=26) 
    'url' => string 'https://webservice.com?wsdl' (length=42) 
    'content_type' => string 'text/xml;charset=utf-8' (length=22) 
    'http_code' => int 200 
    'header_size' => int 165 
    'request_size' => int 901 
    'filetime' => int -1 
    'ssl_verify_result' => int 0 
    'redirect_count' => int 0 
    'total_time' => float 1.469 
    'namelookup_time' => float 0.25 
    'connect_time' => float 0.688 
    'pretransfer_time' => float 1.188 
    'size_upload' => float 632 
    'size_download' => float 536 
    'speed_download' => float 364 
    'speed_upload' => float 430 
    'download_content_length' => float 536 
    'upload_content_length' => float 632 
    'starttransfer_time' => float 1.469 
    'redirect_time' => float 0 
    'redirect_url' => string '' (length=0) 
    'primary_ip' => string 'xxx.xxx.xxx.xxx' (length=15) 
    'certinfo' => 
    array (size=0) 
     empty 
    'primary_port' => int 443 
    'local_ip' => string 'xx.xx.xx.x' (length=10) 
    'local_port' => int 61993 

Ist es normal, dass die "certinfo" ist ein leeres Array? Wenn nicht, warum ist es leer? Danke.

Antwort

4

Unter Umständen müssen Sie die folgende Option, um „certinfo“ bevölkert haben

curl_setopt($ch, CURLOPT_CERTINFO, 1); 
+0

ja sind Sie richtig Dank –