[php] PHP CURL CURLOPT_SSL_VERIFYPEER 무시 됨

어떤 이유로 HTTPS와 함께 CURL을 사용할 수 없습니다. 컬 라이브러리 업그레이드를 실행할 때까지 모든 것이 잘 작동했습니다. 이제 CURL 요청을 수행하려고 할 때 다음 응답이 발생합니다. SSL CA 인증서에 문제 (경로? 액세스 권한?)

관련 문제에 대해 여기에 게시 된 제안에 따라 다음을 시도했습니다.

  • 호스트 및 피어에 대한 확인 비활성화

    curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
  • http://curl.haxx.se/docs/caextract.htmlCURLOPT_SSL_VERIFYPEER 에서 다운로드 한 cacert.pem을 활성화 하고 가리 킵니다 .

    curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
  • 또한 연결하려는 서버의 번들 CA 인증서로 제공된 positiveSSL.ca-bundle로 동일한 작업을 시도했습니다.

  • curl.cainfo=cacert.pem(동일한 디렉토리에있는 파일과 아파치로 액세스 할 수 있음)으로 PHP ini 설정을 편집합니다.

  • 이름 바꾸기 /etc/pki/nssdb/etc/pki/nssdb.old

불행히도 위의 어느 것도 내 문제를 해결할 수 없으며 SSL CA 인증서 (경로? 액세스 권한?) 메시지에 문제가 계속 발생합니다.

그리고 처음에는이 확인이 필요하지 않습니다 (보안 문제를 알고 있습니다).

아무도 다른 제안이 있습니까?

최신 정보

최신 라이브러리로 업데이트하고 전체 상자를 다시 시작한 후 내가하고 있던 아파치뿐만 아니라 이제 다시 작동하는 것 같습니다 !!!



답변

문서에 따르면 호스트 또는 피어 인증서를 확인하려면 CURLOPT_CAINFO옵션으로 대체 인증서를 지정해야합니다. 그렇지 않으면 옵션으로 인증서 디렉토리를 지정할 수 있습니다 CURLOPT_CAPATH.

또한 봐 CURLOPT_SSL_VERIFYHOST:

  • 1은 SSL 피어 인증서에 공통 이름이 있는지 확인합니다.
  • 2 공통 이름의 존재를 확인하고 제공된 호스트 이름과 일치하는지 확인합니다.

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);


답변

CentOS7 시스템에서 동일한 문제가 발생했습니다. 을 비활성화 VERIFYHOST VERIFYPEER해도 문제가 해결되지 않았으며 더 이상 cURL 오류가 발생하지 않았지만 응답은 여전히 ​​유효하지 않았습니다. 수행 wgetcURL을 또한 인증서 오류가 발생하고 있던 같은 링크를.

-> 우리의 해결책은 VPS를 재부팅하는 것이 었는데, 이로 인해 문제가 해결되었고 요청을 다시 완료 할 수있었습니다.

우리에게 이것은 메모리 손상 문제로 보였습니다. VPS를 재부팅하면 라이브러리가 다시 메모리에 다시로드되고 이제 작동합니다. 따라서 위의 솔루션 @clover이 작동하지 않으면 컴퓨터를 재부팅하십시오.


답변