настроить cURL для SSL

0

Еще раз, еще один вопрос относительно cURL и SSL, поскольку я не могу найти соответствующие ответы на мою проблему.

У меня работает SSL на моем веб-сервере, с доверенным сертификатом и зелеными знаками в адресной строке браузера, а не сам. Так хорошо до сих пор.

Теперь я хочу общаться с cURL и использовать следующую функцию (данные POST еще не добавлены):

    function ssltest(){
        $post_data = '';
        $url = 'https://myserver/test.php';
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_MUTE, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
        //curl_setopt($ch, CURLOPT_CAINFO, 'sslstuff/cacert.pem');
        curl_setopt($ch, CURLOPT_CAINFO, 'sslstuff/false.pem');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:  application/x-www-form-urlencoded'));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch); 
        curl_close($ch);
        return $output;
    }

echo ssltest();

Как cacert.pem я использую этот, который я нашел в своем браузере, который, очевидно, идентичен тому, что я нашел здесь http://curl.haxx.se/ca/cacert.pem В приведенном выше коде есть ложный.pem, котор нужно увидеть. Что теперь? Если этот файл пуст, на сервере нет ответа, но я тестировал его, чтобы вставить сертификат из другого предприятия из списка на curl.haxx.se. Я получаю тот же правильный ответ от сервера в качестве результата, как при правильном использовании. PEM

Какая проблема? Что мне не хватает?

  • 0
    "В чем проблема?" - В чем проблема?
Теги:
curl
ssl
openssl
ssl-certificate

1 ответ

0

"нет ответа от сервера"

Я думаю, что это очень маловероятно. Я подозреваю, что HTTP-ответ от сервера отсутствует, но согласование SSL не работает, но в вашем коде нет ошибок. Если $ output === false, посмотрите на curl_error().

Возможно, вам захочется поиграть с VERIFYHOST и VERIFYPEER, чтобы точно определить причину проблемы.

  • 0
    Нравится ? Я сделал, если ($ output! == false) вернуть $ output; иначе возвращаем curl_error ($ ch); без разницы. И без сообщения об ошибке на выходе.
  • 0
    Извините, я пытался поймать сообщение об ошибке после закрытия curl. Теперь я получаю сообщение об ошибке «Сертификат установки ошибки проверки местоположения: CAfile: sslstuff / false.pem CApath: / etc / ssl / certs», когда файл пуст (но все еще существует). Но если я использую ложный сертификат, отличный от правильного, ошибка все равно не появится, и веб-сайт отвечает
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню