programing

PHP CURL OPT_SSL_VERIFYPEER 무시

randomtip 2023. 1. 5. 23:58
반응형

PHP CURL OPT_SSL_VERIFYPEER 무시

HTTPS에서는 CURL을 사용할 수 없습니다.CURL 라이브러리의 업그레이드를 실행할 때까지 모든 것이 정상적으로 동작하고 있었습니다.CURL 요청을 실행하려고 하면 다음과 같은 응답이 발생합니다.SSL CA 증명서 문제(패스?액세스 권한)

관련 문제에 대해 여기에 게재된 다음 제안사항을 따르려고 합니다.

  • 호스트 및 피어 확인 사용 안 함

    curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
    
  • 가능하게 하다CURLOPT_SSL_VERIFYPEERhttp://curl.haxx.se/docs/caextract.html 에서 다운로드 받은 cacert.pem 을 가리킵니다.

    curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);  
    curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
    
  • 접속하는 서버의 번들 CA 증명서로서 제공된 positiveSSL.ca-timeout에서도 같은 처리를 시도했습니다.

  • php ini 설정 편집 방법curl.cainfo=cacert.pem(같은 디렉토리에 있는 파일로 Apache로 액세스 가능)

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

유감스럽게도 위의 어느 것도 문제를 해결할 수 없으며 SSL CA cert(path?access rights?) 메시지에 문제가 계속 표시됩니다.

또, 이 검증은 처음부터 필요 없습니다(시큐러티상의 문제는 알고 있습니다).

다른 의견 있으신가요?

갱신하다

최신 라이브러리로 갱신하고 박스 전체를 재기동한 결과, 제가 하고 있던 apache뿐만 아니라, 다시 동작하고 있는 것 같습니다!!!

설명서에 따르면 호스트 증명서 또는 피어 증명서를 확인하려면 다음 명령을 사용하여 대체 증명서를 지정해야 합니다.CURLOPT_CAINFO옵션 또는 증명서 디렉토리를 지정할 수 있습니다.CURLOPT_CAPATH선택.

또,CURLOPT_SSL_VERIFYHOST:

  • 1: SSL 피어 증명서에 공통명이 존재하는지 확인합니다.
  • 2: 공통 이름의 존재 및 지정된 호스트 이름과 일치하는지 확인합니다.

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

센트에서 같은 문제가 발생했습니다.OS7 머신디세블화VERIFYHOST VERIFYPEER문제를 해결하지 못했습니다.cURL 에러는 발생하지 않았지만, 응답은 여전히 유효하지 않습니다.을 하다wgetcURL과 같은 링크에 접속하면 증명서 에러가 발생합니다.

-> 또, VPS를 재기동해, 해결되어 재차 요구를 완료할 수 있었습니다.

우리에게 이것은 기억의 손상 문제인 것처럼 보였다.VPS를 재기동하면, 메모리에 라이브러리가 다시 로드되어 동작합니다.따라서 위의 솔루션이@clover을 사용하다츠미야

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Return data inplace of echoing on screen
curl_setopt($ch, CURLOPT_URL, $strURL);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Skip SSL Verification
$rsData = curl_exec($ch);
curl_close($ch);
return $rsData;

언급URL : https://stackoverflow.com/questions/15135834/php-curl-curlopt-ssl-verifypeer-ignored

반응형