Tôi đang sử dụng Guzzle v3.9.2 với cả php 5.3 và php 5.5.Di chuyển khách hàng Curl ssl sang Guzzle
Tôi đã mã curl làm việc sau đó sử dụng một chứng chỉ SSL client:
$url = "https://example.com/";
$cert_file = '/path/to/certificate.pem';
$ch = curl_init();
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_URL => $url ,
CURLOPT_SSLCERT => $cert_file ,
);
curl_setopt_array($ch , $options);
$output = curl_exec($ch);
if (!$output) {
echo "Curl Error : " . curl_error($ch);
}
else {
echo htmlentities($output);
}
Tôi đã cố gắng để di chuyển nó đến tật ham ăn:
require '/var/www/vendor/autoload.php';
use Guzzle\Http\Client;
$client = new Client();
$request = $client->get($url, array('cert' => $cert_file));
$response = $client->send($request);
echo $response . PHP_EOL;
print 'HI' . PHP_EOL;
Khi tôi chạy nó sử dụng curl tôi nhận được một 200 phản hồi. Khi tôi sử dụng hay uống rượu tôi nhận được một 403.
'tùy chọn cert' chỉ làm việc với chứng chỉ khách hàng. Nếu bạn đang sử dụng chứng chỉ riêng thì curl sẽ cho bạn không thể đặt lỗi tệp khóa riêng tư. Xin vui lòng tham khảo câu trả lời của tôi dưới đây –