2017-09-11 4 views
2

현황SSL 인증서 오류

내가 승리 (10) 노트북에 아파치/2.4.27 (Win64를) PHP/7.2.0beta3 있습니다. 나는 cURL을 구현하고 싶다. 이것은 내 코드입니다

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, 'https://www.youtube.com'); 
curl_exec($curl); 

if (curl_errno ($curl)) { 
    echo curl_error ($curl); 
    curl_close ($curl); 
} 

SSL certificate problem: unable to get local issuer certificate을 생성하는 코드입니다. 그래서 https://curl.haxx.se/ca/cacert.pem에서 인증서를 다운로드했습니다. cacert.pem 파일을 가져 와서 PHP 폴더에 넣고 curl.cainfo = C:php/ext/cacert.pem과 같은 파일 php.ini을 편집했습니다.

문제는 지금이 오류 error setting certificate verify locations: CAfile: C:php/ext/cacert.pem CApath: none를 얻을. 내가 찾은 유일한 해결책은 내가 찾은 사이트에서 .crt 파일을 다운로드하고 처럼 내 머리 속에 포함시켜야한다는 것입니다.

문제 1.1 : 나는 위의 예처럼, 그래서 난 내 코드에 포함 할 수있는 .crt 파일을 다운로드하는 방법을 잘 모릅니다.

문제 1.2 : 이는 "보편적 인"솔루션이 아니므로 다른 사이트의 다른 인증서를 다운로드 할 필요가없는 방식으로 인증서를 설정하고 싶습니다.

고맙습니다.

+0

'SSL 인증서 문제 : 로컬 발급자 인증서를 가져올 수 없습니다.'문제가 발생했으며, 저는 여러분과 마찬가지로 cacert.pem 파일을 가지고 php.ini 파일에 링크했습니다. 나를 위해 완벽하게 일했습니다. 유일한 차이점은 PHP 5.6입니다. –

+1

현재 오류로 인해 인증서 위치를 설정할 수 없다는 메시지가 나타납니다. 'C : php/ext/cacert.pem'는 아마도'C :/php/ext/cacert.pem'이어야합니다. 그 후에, 결과가 작동하는지 여부를 게시 할 수 있습니까? 참조한 현재 curl cacert.pem에 GeoTrust Global CA 인증서가 포함되어 있으므로 YouTube 인증을 유효하게해야합니다. – drew010

+1

@ drew010'curl.cainfo = C :/php/cacert.pem'에서도 작동합니다. 자세한 내용은'C :'다음에'/'를 생략했습니다. 나는이 책에서 가장 오래된 규칙을 잊었다. 귀하의 답변에 감사드립니다. 당신은 정상적인 것으로 게시 할 수 있습니다, 그래서 나는 당신을 업 그레 이드 할 수 있고 그것을 올바른 것으로 선택할 수 있습니다. – slevin

답변

1

현재 CA CERT는 추출물은 당신이 가지고있는 파일을 사용하여 아무런 문제가 없어야한다, 그래서 결국, YouTube의 인증서에 서명 구글의 CA의 인증서에 서명 한 GeoTrust의 글로벌 CA 인증 기관이 포함되어 있습니다.

C: 이후에 /이 누락되어 마지막으로 오류가 발생했기 때문에 문제가 발생한 것 같습니다. 메시지 error setting certificate verify locationscurl.cainfo으로 지정된 파일을 열거 나 읽을 수 없으므로 아무런 인증서도 찾지 못했음을 의미합니다.

C:php/ext/cacert.pemC:/php/ext/cacert.pem으로 변경하면 CA 파일을 올바르게 읽고 사이트를 제대로 확인할 수 있어야합니다.

-1

가장 쉬운 방법은이 확인을 건너 뛰는 것입니다. cURL에서 제공

... 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_exec($curl); 
+1

연결이 불안정 해지면 이는 다소 진절머리 나는 충고입니다. –

+0

나는 그 옵션도 가지고 있음을 알고 있지만, 인증서를 요구하고 있는데, 너무 그들을 건너 뛰는 방법이 아닙니다. 어쨌든 고마워. – slevin