>백엔드 개발 >PHP 튜토리얼 >PHP `file_get_contents()`에서 'SSL 작업 실패 코드 1' 오류를 수정하는 방법은 무엇입니까?

PHP `file_get_contents()`에서 'SSL 작업 실패 코드 1' 오류를 수정하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-15 08:58:13968검색

How to Fix

file_get_contents() SSL 인증서 확인 오류 문제 해결

PHP 5.6에서 file_get_contents()를 사용하여 REST 서비스에 액세스하려고 하면 다음과 같은 문제가 발생할 수 있습니다. 더 엄격한 인증서로 인해 "SSL 작업이 코드 1로 실패했습니다" 오류 발생

문제 설명
사용자의 PHP 페이지가 file_get_contents()를 사용하여 HTTPS 엔드포인트에서 데이터를 가져오려고 합니다. 그러나 다음 오류로 인해 실패합니다.

  • 경고: SSL 작업이 코드 1로 실패했습니다. OpenSSL 오류 메시지: 인증서 확인 실패
  • 경고: 암호화 활성화 실패
  • 경고: 스트림 열기 실패: 작업 실패

근본 원인
PHP 5.6에서는 기본적으로 더 엄격한 SSL 확인을 도입하여 정확한 인증서 확인이 필요합니다. 이 오류는 클라이언트가 원격 서버의 인증서를 확인할 수 없음을 나타냅니다.

해결 방법
이 문제를 해결하려면 OpenSSL 5.6의 공식 PHP 문서에서는 인증서 확인을 비활성화할 것을 권장합니다. 참고: 이 솔루션은 보안에 상당한 영향을 미치며 클라이언트와 서버 간에 신뢰가 구축된 통제된 환경에서만 고려해야 합니다.

$arrContextOptions = array(
    "ssl" => array(
        "verify_peer" => false,
        "verify_peer_name" => false,
    ),
);

$response = file_get_contents("remote_url", false, stream_context_create($arrContextOptions));
  1. 배열 생성($arrContextOptions) SSL 옵션을 구성합니다.
  2. 인증서 확인을 비활성화하려면 verify_peer를 false로 설정합니다.
  3. 설정 verify_peer_name을 false로 설정하여 호스트 이름 확인을 비활성화합니다.
  4. $arrContextOptions 배열을 사용하여 stream_context를 생성합니다.
  5. 스트림 컨텍스트를 file_get_contents()의 세 번째 매개변수로 전달합니다.

중요사항
SSL 인증서 비활성화 검증은 보안을 약화시키고 애플리케이션을 도청 및 기타 보안 침해에 노출시킬 수 있습니다. 이 해결 방법을 사용하는 대신 신뢰할 수 있는 SSL 인증서를 사용하도록 시스템을 올바르게 구성하는 것이 좋습니다.

위 내용은 PHP `file_get_contents()`에서 'SSL 작업 실패 코드 1' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.