컬을 사용할 때 보안상의 이유로 cacert.pem을 최신 상태로 유지하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com//questions/23032165

문제

cURL 및 PHP 내부 인증서에 사용하기 위해 루트 인증서를 최신 상태로 유지하고 싶습니다. curl 그러나 현재 적절한 보안 연결에 필요한 현재 파일을 다운로드하고 최신 상태로 유지하는 매개변수는 없습니다.

그리고 사용 예 curl PHP에서 다음과 같은 파일이 필요한 보안 연결을 위해 cacert.pem (원격 연결 검증을 위한 PEM 인코딩 인증서 체인)은 다음과 같습니다.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_CAINFO, "pathto/cacert.pem");
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
if (!($data = curl_exec($ch))) {
    echo "No data received";
} else {
    echo strlen($data) + " total byte(s)";
}
curl_close($ch);

대부분의 사람들은 단순히 설정하지만 CURLOPT_SSL_VERIFYPEER 거짓으로 간주하여 문제를 무시합니다. 그건 나쁘다 .당신은 할 수 있습니다 인증 기관이 이 파일을 현재 가지고 있지 않은 경우 보안 서버에 연결하는 유일한 방법은 인증서 확인을 비활성화하고 피어 확인 비활성화 뒤에 숨은 의미에 대해 경고하는 것임을 보여주는 여기를 참조하십시오..

제가 요청하는 것은 로컬 사본을 유지하기 위한 합법적인 방법입니다. cacert.pem 그래서 내가 사용할 때 curl 다른 서버와 통신하기 위해 PHP를 사용하면 계속 그렇게 할 수 있습니다. 안전하게 .

이는 외부 리소스나 오프사이트 링크 등에 대한 요청이 아니지만, 문제의 특성으로 인해 인증서 체인이 취소됨에 따라 지속적인 업데이트가 필요하므로 이 문제를 해결하는 유일한 방법일 수 있습니다.현재까지 이 파일을 컬 자체나 PHP 배포의 일부로, 또는 PHP용 컬 라이브러리로 구해서 계속 유지할 수 있는 방법은 없습니다.이것이 다음과 같은 간단한 업데이트 명령이 아니라는 점은 실망스럽습니다. curl --update-root-ca 좋겠지만 어떤 형태로도 존재하지 않습니다.

도움이 되었습니까?

해결책

처음에 이 기사를 작성한 이후(따라서 다시 작성), 나는 다음 링크에 대한 링크를 직접 포함하여 내 문제를 해결할 수 있었습니다. 오직 작성자가 관리하는 사이트에 제공되는 이 파일을 관리할 수 있는 합법적인 소스입니다. curl ~에 이 위치

또한 기술이 발전함에 따라 이 질문은 사용 방법을 보여주기 위해 업데이트되었습니다. curl PHP를 사용하고 TLS v1.2 연결을 강제합니다(특정 거래 공급자가 요구하거나 권장하며 이를 수행하는 방법에 대한 정보를 제공하지 않을 수 있음).

인증 기관과 관련하여 다음과 같은 몇 가지 주요 루트 기관이 있습니다.

  • 시만텍
  • RapidSSL
  • 해동하다
  • 지오트러스트
  • 코모도

다음과 같은 성격상 다른 권위도 마찬가지입니다.

  • 마이크로소프트
  • 모질라
  • Google

자신만의 cacert.pem을 유지하려는 사람을 위한 프레임이 될 수 있습니다.적절한 신뢰 메커니즘을 유지하려면 해당 crl에서 해지 목록(위반되거나 만료된 인증서)을 다운로드해야 하며, 루트 인증서 체인을 다운로드하고 이를 사용하면 됩니다. cacert.pem과 같은 로컬 권한 파일로.

다른 팁

cacert.pem 에 의해 사용됩니다 curl.인증서를 신뢰할 수 있는 최종 권한은 없지만 웹 브라우저에서 사용하는 목록은 좋은 소스입니다..이 목록은 CA 변경 및 보안 관행 변경으로 인해 지속적으로 업데이트됩니다.

저자 curl 추출할 수 있는 도구를 유지 관리 cacert.pem Firefox에서 해당 사이트에 합리적으로 최신 출력을 게시합니다.

  • cacert.pem 작성자가 생성한 curl
  • caextract:보안을 가장 중요하게 생각하는 경우 도구를 다운로드하고 소스 코드를 검사한 후 자신의 Firefox에서 실행해 보세요.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top