2013-10-05 2 views
0

이것은 2 일 동안 나를 미치게 만들었습니다. 아래 두 가지 PHP 함수가 모두 곱슬 곱슬합니다. 그들은 정확히 똑같은 'XML 게이트웨이'를 지적합니다. 유일한 차이점은 SSL을 통해이를 시도하고 암호화되지 않은 HTTP를 통해 다른 것을 시도한다는 것입니다.PHP CURL XML 게이트웨이에 연결하는 SSL

HTTP 커넥터 연산자는 예상대로 작동하여 XML 파일을 게시하고 서버 응답을 반환합니다.

SSL 커넥터는 너무 '막힌 내부 서버 오류가 발생했습니다. 나중에 다시 시도 해주십시오'. Lighttpd 오류 로그에 아무 것도 나타나지 않습니다. 아무도 멋진 아이디어가 있습니까?

내 웹 서버 config/openSSL 설정인지 궁금합니다. 두 제품 모두 데비안 위지 표준 패키지입니다. SSL_VERIFYPEER & 호스트가 안전하지 않다는 점을 인정합니다. 그러나 옵션을 다 써 버리려고 노력하고 있습니다.

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

해당 게시물을 솔루션으로 업데이트하고 동의하십시오. –