2013-04-05 3 views
1

Я пытаюсь использовать curl для HTTPS-адреса API. Api просто отображает строковый результат при отправке страницы и не возвращает мне мой домен. Я не уверен, есть ли другой способ сделать это, но решил, что CURL - единственное решение.Публикация CURL в другой домен Ошибка сертификата SSL

Возможно ли, что это происходит только на моем локальном хосте?

Принимающий Ошибка: проблема сертификата SSL, убедитесь, что сертификат CA ОК

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 


//execute post 
$result = curl_exec($ch); 
var_dump(curl_error($ch)); 

Результат: строка «Проблема сертификата SSL, убедитесь, что сертификат CA в порядке. Подробности: Ошибка: 14090086: SSL-процедуры: SSL3_GET_SERVER_CERTIFICATE: проверка сертификата не удалась '(длина = 146)

+0

Не могли бы вы поделиться тем, что было ответом? - это api с использованием ssl 3.0 и выше? обычно, когда вы зависаете со своего сервера, он начинается с ssl 2.0, и это вызовет проблему. – Jianhong

+0

Добавлен результат выше – chadpeppers

+1

См. Эту ссылку: http://curl.haxx.se/docs/sslcerts.html –

ответ

0

По умолчанию PHP пытается сертифицировать сертификат однорангового узла.

Если вы уверены, что вам не все равно, что вы можете сделать это, чтобы увидеть, если локоны запрос может стрелять, только для тестирования:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

перед выполнением вызова завитка.

Правильным способом было бы установить вызов cURL для использования существующих сертификатов CA вашего сервера с использованием CURLOPT_CAPATH или CURLOPT_CAINFO.

+0

Я пробовал это, но сайт возвращает ошибку 405 – chadpeppers

+0

@Chad Hmm, 405 ошибка означает, что метод не разрешен, что означает, что вы должны попробовать использовать GET или PUT вместо POST. – Stegrex

Смежные вопросы