PHP cURL 오류 코드 60


85

Amazon PHP SDK를 사용하기 위해 Windows (wamp 사용)에서 PHP 환경을 설정하려고 시도하는 동안 샘플 테스트를 실행하려고하면 다음 오류가 발생합니다.

Fatal error: Uncaught exception 'cURL_Exception' with message 'cURL resource: Resource id #10; cURL error: SSL certificate problem: unable to get local issuer certificate (cURL error code 60). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in C:\wamp\www\AWSSDKforPHP\lib\requestcore\requestcore.class.php on line 848

이미 php.ini에 다음 줄을 추가했습니다.

curl.cainfo = C:\Windows\ca-bundle.crt

이 VBS 스크립트를 사용하여 만든 인증서의 위치입니다. VBS-Script

내 WAMP 서비스도 다시 시작했습니다.

PHP 인덱스 컬 참조


6
인증 프로세스에 관심이없는 경우에는 모두 비활성화 할 수 있습니다. curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false);
denispyr 2015

이것은 나를 위해 문제를 해결 - stackoverflow.com/a/32095378/178163은 기본적으로 2 개 php.ini의 파일이있을 수 있습니다
조지 케이건

2
내가했던 것처럼이 문제에 처음으로 부딪친 사람들의 경우, 내가 이해하는 한 (내가 틀리면 나를 고쳐주세요) 그 이유는 브라우저를 통한 HTTPS 연결 상황과 달리 CURL 요청 때문입니다. 서버에서 인증서를 얻지 못합니다. 따라서 사이트의 인증서를 수동으로 다운로드하여 PHP ini에 추가해야합니다. 클라이언트 측의 인증서 확인은 HTTPS 연결 프로세스의 일부이며 우회 할 수있는 것 같습니다. 이것이 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);그림 이 나오는 곳 입니다.
Sandeepan Nath

매력으로 활약 !!!! 감사!
Rodrigo Serzedello

답변:


226

이 인증서 루트 인증서 번들을 사용하십시오.

https://curl.haxx.se/ca/cacert.pem

이 인증서 번들을 디스크에 복사하십시오. 그리고 이것을 사용하십시오php.ini

curl.cainfo = "path_to_cert\cacert.pem"

10
그리고 이것이 문제를 해결하지 못하는 경우? 나는 설정 curl_setopt($ch, CURLOPT_CAINFO, ini_get('curl.cainfo'));하고 php.ini [cURL] curl.cainfo = C:\dev\xampp\php\cacert.pem . 파일이 있지만 여전히 오류 60이 표시됩니다. 누락 된 항목이 있습니까?
Overflowh

3
@Overflowh에는 두 가지 유형이 있습니다 php.ini. 하나는 php-cli 용이고 두 번째는 php-web (apache, nginx, ...)입니다. curl.cainfo = "path_to_cert\cacert.pem"웹용 으로 설정해야합니다 . 반면에, curl.cainfoPHP 정보보기에서 사실임을 알 수 있다면 권한 문제가있을 수 있습니다.
Hüseyin BABAL

글쎄, 실제로 나는 curl.cainfo내 PHP 정보에서 볼 수 없습니다 . 이것은 내가 잘못된 파일에 값을 넣었 음을 의미합니까?
Overflowh

1
예, php.ini 파일 위치를 다시 확인하십시오. 당신은 웹 버전에서 그 둘 필요
Hüseyin BABAL

나는 아파치 php.ini 파일에 추가했지만이 일을하지 않았다
카심 badami

31

나는 php.ini파일을 수정하여 이것을 고쳤다 .C:\wamp\bin\apache\apache2.4.9\bin\

curl.cainfo = "C:/wamp/bin/php/php5.5.12/cacert.pem"

처음에는 php.ini파일을 수정하여 시도 C:\wamp\bin\php\php5.5.12\했지만 작동하지 않았습니다.

이것이 php.ini수정할 권리 를 찾는 사람에게 도움이되기를 바랍니다.


1
감사. 필요한 것은 curl.haxx.se/ca/cacert.pem 에서 파일을 다운로드하고 당신이 말한 것처럼 아파치 php.ini 파일에 경로를 설정하는 것 뿐이었습니다 . 사람들을 인식하십시오. 원하는 곳에 cacert를 넣을 수 있습니다. 경로를 올바르게 입력했는지 확인하십시오. 또한 세미콜론을 제거했는지 확인하십시오!
Dan Zuzevich

1
이 후 아파치를 다시로드하는 것을 잊지 마십시오.
hcker2000

17
php --ini

이렇게하면 어떤 php.ini 파일이로드되고 있는지 정확히 알 수 있으므로 수정할 파일을 알 수 있습니다. WAMP와 XAMPP를 설치했기 때문에 잘못된 php.ini 파일을 변경하는 데 많은 시간을 낭비했습니다.

또한 php.ini를 변경 한 후 WAMP 서버 (또는 사용하는 모든 것)를 다시 시작하는 것을 잊지 마십시오.


1
생명의 은인! 3 일 문제 해결 및 이것이 문제인 것으로 밝혀졌습니다
suo

13

@Overflowh 나는 운이없는 위의 대답을 시도했습니다. 이 설정은 php 5.3.7 이상에서만 작동하므로 php 버전을 5.3.24에서 5.5.8로 변경했습니다. 그런 다음이 http://flwebsites.biz/posts/how-fix-curl-error-60-ssl-issue 를 찾았습니다. 거기에서 cacert.pem을 다운로드하고 curl.hxxx.se에서 다운로드 / 만든 파일을 대체했습니다. 위에 링크되어 모든 것이 작동하기 시작했습니다. 확인을 위해 페이팔 샌드 박스 IPN을 얻으려고했습니다. .pem 스왑 후 5.3.24에는 아직없는 php.ini의 curl.cainfo 설정을 사용하는 것이 좋습니다.


2
나는 동일한 문제에 직면했고 위에서 언급 한 .pem 파일 양식을 다운로드하여 해결했습니다. 감사합니다
saqibahmad 2015-08-17

4
하하 믿을 수가 없어! 저는 FLWebsites.biz를 소유하고 있는데 제가 언급 된 것을 전혀 모르고이 게시물을 만났습니다. 저는 그 블로그를 썼습니다!
HTMLGuy 2015-09-13

나는 문제를 파악하려고 노력해 왔으며 3-4 시간 후에 마침내이 대답을 발견했습니다. 나는 오, 잘 말했다. 다른 pem 파일을 다시 시도하는 것은 어떨까. 그리고 놀랍게도 마침내 작동했습니다. :)이 블로그를 찾아 주셔서 감사합니다
Sauleil

이것은 Windows 10, IIS에서 cacert.pem 문제를 해결했습니다. 감사.
jacouh

3
죄송합니다. 제 사이트를 다운 시켰습니다. 소스로 직접 이동 : curl.haxx.se/docs/caextract.html
HTMLGuy


5

먼저이 인증서 루트 인증서 번들을 다운로드해야합니다.

https://curl.haxx.se/ca/cacert.pem

이 파일을 Wamp / Xampp 폴더의 PHP 폴더와 같은 위치로 이동하십시오.

그런 다음 "php.ini"를 편집하십시오.

curl.cainfo = "C : /path/to/your/cacert.pem"

openssl.cafile = "C : /path/to/your/cacert.pem"

중대한:

창 탐색기에서 직접 "php.ini"파일을 열어야합니다. (제 경우 : "C : \ DevPrograms \ wamp64 \ bin \ php \ php5.6.25 \ php.ini").

시스템 트레이의 Wamp / Xampp 아이콘 메뉴에서 "php.ini"바로 가기를 사용하지 마십시오. 이 단축키는 내가 직면 한 경우에 작동하지 않았습니다.

"php.ini"를 저장 한 후에는 Wamp 아이콘에서 "모든 서비스를 다시 시작"하거나 CMD를 닫거나 다시 열 필요가 없습니다.

"var_dump (openssl_get_cert_locations ());"로 시도하고 다음 줄을보십시오. [ "ini_cafile"] => string (40) "C : /path/to/your/cacert.pem"

끝난.


탐색기를 통해 php.ini 파일을 여는 것에 대한 메모가 실제로 작동했습니다! 그리고 마침내 wamp 아이콘의 php.ini가 다른 경로를 가지고 있음을 알게되었습니다. 감사합니다!!!
Doctiger

3

문제 수정, https://curl.haxx.se/ca/cacert.pem을 다운로드 하여 "어딘가"에 넣고 다음 줄을 추가하십시오 php.ini.

curl.cainfo = "C:/somewhere/cacert.pem"

추신 : xampp로 drupal에 모듈을 설치하려고하면이 오류가 발생했습니다.


3

문제에 대한 가장 쉬운 해결책은 필드에 아래 명령을 추가하는 것입니다.

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);

이것을 사용하면 인증서 나 아무것도 추가 할 필요가 없습니다.


2

php.ini에 아래 추가 [경로에서 '\'대신 '/'사용] curl.cainfo = "path / cacert.pem"

내 XAMPP를 다시 시작했습니다. 그것은 나를 위해 잘 작동했습니다. 감사



1

먼저이 링크에서 인증서를 다운로드해야합니다.

https://curl.haxx.se/ca/cacert.pem

다운로드 가능한 파일의 이름을 원하는 위치에 넣으십시오. cacert.pem 그래서 제 경우에는 C : \ wamp64 \ bin \ php \ cacert.pem에 넣겠습니다.

그런 다음 php.ini 파일의 위치를 ​​지정해야합니다.

예를 들어, php 7을 사용하고 있습니다. php.ini 파일은 C : \ wamp64 \ bin \ php \ php7.0.10 \ php.ini에 있습니다.

따라서 해당 파일에 액세스하고이 행을 커밋 해제하십시오.; openssl.cafile

또한 다음과 같이 업데이트하십시오. openssl.cafile = "C : \ wamp64 \ bin \ php \ cacert.pem"

마지막으로 아파치 서버를 다시 시작하십시오.


1

중요 : 4 시간 후 laravel 5.7 및 php 7. +로 작업하고 mailgun에 연결하려고하는 localhost에서 php artison serve를 실행 / 사용합니다.

문제 해결을위한 중요 IP http://127.0.0.1:8000에서 작동하지 않음 localhost를 사용하거나 호스트 파일로 도메인 이름 설정

확인 ,


0

해결책은 아파치의 php.ini가 아닌 php 버전 (저는 php7.0.10)에있는 php.ini 파일을 편집하는 것입니다. 다음과 같이 주석 처리 된 파일을 찾을 수 있습니다; curl.cainfo이 줄을 다음과 같이 변경하십시오. curl.cainfo = "C : \ permCertificate \ cacert.pem"

"permCertificate"디렉토리를 만들고 그 안에 "cacert.pem"파일을 복사하는 것을 잊지 마십시오.


Ampps에서 나를 위해 작품, 감사합니다
알레한드로 아란

-1

나를 위해 무엇이 효과가 있었는지 알 수 있도록 https://curl.haxx.se/ca/cacert .... 의 파일은 작동하지 않았지만 ( http : // flwebsites 의 게시물에있는 zip 폴더에있는 파일은 .biz / posts / how-fix-curl-error-60-ssl-issue ) 전혀 문제없이 저를 위해 일했습니다.

다른 사람들이 말했듯이 인증서 파일을 하드 드라이브의 위치에 복사하고 행을 업데이트하십시오.

;curl.cainfo 

읽을 php.ini 파일에서

curl.cainfo= "path_to_cert\cacert.pem"

Apache 서버를 다시 시작하십시오.


연결된 웹 사이트가 스팸입니다.
Rick Kukiela
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.