2012-07-13 3 views
0

저는 소수의 시험 사용자 (20 명 중 3 명)만이 특정 페이지의 콘텐츠를 볼 수없는 베타 웹 사이트를 관리하고 있습니다. 모든 사용자는 서로 다른 네트워크에서 다른 컴퓨터를 사용하고 있습니다. 3 명의 사용자가 자바 스크립트를 사용할 수 있도록 설정했는데 문제가 해결되지 않았습니다.cURL SSL 인증서 거부로 인해 실패 했습니까?

더 자세히 살펴보면 cURL 호출이 실패하여 내용이 부족한 것 같습니다. 이러한 사용자의 경우 curl_exec()가 실패하거나 아무런 데이터도 반환하지 않는 것으로 나타나며 결과적으로 null 결과를 반환하므로 아무 정보도 표시되지 않습니다. 이 3 명의 사용자의 경우이 문제는 3 개의 개별 브라우저 (Chrome, IE, Firefox)에 존재합니다. 다른 네트워크에있는 여러 대의 컴퓨터에서 계정에 로그인하고 응답 할 수 있기 때문에 사용자 ID와 같은 사용자 설정이 아닌 것으로 확인되었습니다.

나는 그들의 기계/네트워크가 SSL 인증서를 처리하는 방식이 범인이라고 생각합니다. 나는 SSL 인증서에 정통하지 않으므로, 일부 분야에서 내 무지 또는 눈부신 실수를 용서해주십시오. 그러나 제거 과정을 통해이 3 명의 사용자의 네트워크/컴퓨터가 웹 사이트 인증서를 거부하고 있다고 판단하여 cURL 호출이 실패합니다. 내 질문은 이것이 사실인지 어떻게 확인할 수 있습니까? 그럴 경우 원인은 무엇이며 어떻게 문제를 해결할 수 있습니까?

웹 사이트는 Zend 프레임 워크를 사용하여 PHP로 제작되었습니다. 어떤 도움을 크게 감상 할 수

$ssl_cert = ZendGA_Global::getOption('curl_ssl_certificate'); 
$ssl_verify_peer = ZendGA_Global::getOption('curl_ssl_verify_peer'); 
$ssl_verify_host = ZendGA_Global::getOption('curl_ssl_verify_host'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

// related to SSL cerificate verification 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $ssl_verify_host); 
curl_setopt($ch, CURLOPT_CAINFO, $ssl_cert); 


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

//close connection 
curl_close($ch); 

: 여기에 코드의 관련 비트입니다.

+0

나는 당신을 도와 줄께. – Sathishkumar

답변

0

나는 URL을 잘못했기 때문에 cURL 호출이 실패했음을 알았지 만 다른 곳에서 원래 있던 문제였습니다. URL은 기본 URL과 일부 매개 변수를 사용하여 작성되지만 기본 URL을 가져 오는 기능은 도메인 이름 대신 호스트 이름을 가져옵니다. 일부 사용자는 VPN을 통해 로그인하기 때문에 호스트 이름이 약간 다르게 읽히기 때문에 URL이 잘못되었습니다. 좋아, 그것은 다소 복잡했다. 그러나 문제는 해결되었다. :-)