2013-10-05 2 views
0

Это привело меня в сумасшествие на 2 дня - у меня есть 2 PHP-функции, как описано ниже, как с использованием curl. Они указывают на то же «XML-шлюз», единственное отличие заключается в том, что он пытается сделать это через SSL, а другой - через незашифрованный HTTP.PHP CURL SSL Подключение к XML-шлюзу

Оператор коннектора HTTP работает точно так, как ожидалось, отправляя XML-файл и возвращая ответ сервера.

Соединитель SSL возвращает все так неопределенно «Произошла внутренняя ошибка сервера. Пожалуйста, повторите попытку позже'. В моем журнале ошибок lighttpd ничего не появляется, есть ли у кого какие-то яркие идеи?

Мне интересно, является ли это конфигурацией моего веб-сервера config/openSSL. Они оба являются стандартными пакетами Debian Wheezy. Я ценю, что SSL_VERIFYPEER & HOST, установленный для продажи, небезопасен, однако я пытался исчерпать варианты.

openssl s_client -connect xmlgw.companieshouse.gov.uk:443 -ssl3 

и командной строки функция

curl https://xmlgw.companieshouse.gov.uk/v1-0/xmlgw/Gateway 

также работает, как ожидалось на веб-сервере.

PHP функции:

//SSL post function 

public function getSSLCurlResponse($xml) { 
    $url = "https://xmlgw.companieshouse.gov.uk/v1-0/xmlgw/Gateway"; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSLVERSION,3); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

    $response = curl_exec($ch); 
    curl_close($ch); 
    return $response; 
} 

//HTTP non SSL function 
public function getCurlResponse($xml) { 
    $url = "http://xmlgw.companieshouse.gov.uk/v1-0/xmlgw/Gateway"; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    $response = curl_exec($ch); 
    curl_close($ch); 
    return $response; 
} 

любая помощь будет очень признателен!

Благодаря

ответ

-1

я пришел к выводу, что произошла ошибка в общем подключении к серверу - хотя я не мог найти способ доказать, что. Мне удалось найти альтернативное решение без использования SSL-сокета.

+0

Обновите сообщение своим решением и соглашайтесь с ним. –

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