почтовый сервер cUrl http post с ssl сертификатом запрашивает закрытый ключ у меня нет - PullRequest
0 голосов
/ 08 декабря 2010

Я должен отправить данные на сервер платежей и получить от них результат. Я решил использовать cUrl для достижения этой цели. Другая сторона дала мне ssl-сертификат, который действует как открытый ключ (если я правильно понимаю). Вызов cUrl возвращает ошибку с жалобой на невозможность установить закрытый ключ, чего я не понимаю, потому что не могу получить закрытый ключ платежного сервера из-за проблем безопасности. Мне просто нужно передать свой ssl-сертификат на платежный сервер, чтобы они могли идентифицировать меня (у них есть IP-адрес моего сервера, и я предполагаю, что закрытый ключ для сертификата, который они мне дали).

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

Итак, вопрос - как сделать сообщение cUrl http?

Сейчас я использую этот код:

$x = curl_init();
$options = array(
    CURLOPT_URL => $serverURL,
    CURLOPT_VERBOSE => 1, 
    CURLOPT_SSLCERT => getcwd() . "/certificate.pem",
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_FAILONERROR => 1, 
    CURLOPT_HEADER => true,
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => $string,
    CURLOPT_FOLLOWLOCATION => 0,
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_TIMEOUT => 5,
);

curl_setopt_array($x, $options);

$data = curl_exec($x);


if (curl_errno($x)) {
    echo curl_error($x) . " ( " . curl_errno($x) . " )<br/>"; 
} else {
    echo "reponse: ";
    var_dump ($data);
}

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

CURLOPT_SSL_VERIFYPEER должен быть установлен в true, а не в false

0 голосов
/ 11 декабря 2010

Хорошо.Похоже, мне не дали все данные.Должно быть, у меня был ключ и клавиатурный ключ для правильной работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...