>  기사  >  백엔드 개발  >  OpenSSL을 사용하여 file_get_contents()에 대한 암호화 초기화 실패를 해결하는 방법은 무엇입니까?

OpenSSL을 사용하여 file_get_contents()에 대한 암호화 초기화 실패를 해결하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-23 12:22:36806검색

How to Resolve Failed Crypto Initialization for file_get_contents() Using OpenSSL?

OPENSSL을 사용하여 file_get_contents()에 대한 암호화 초기화 실패 문제 해결

OPENSSL과 함께 file_get_contents()를 사용하는 동안 "암호화 활성화 실패" 오류가 발생하면 조사하는 것이 중요합니다. 근본적인 문제.

근본 원인 식별

제공된 오류 로그는 암호화 초기화 중 시간 초과를 제안합니다. 그러나 문제는 다른 곳에 있을 수 있습니다. 한 가지 가능한 원인은 웹 사이트가 SSLv3과 같은 지원되지 않는 SSL 버전을 사용하기 때문입니다.

cURL을 사용하는 솔루션

file_get_contents()의 제한을 우회하고 SSLv3 지원을 활성화하려면 , 대신 cURL을 사용하는 것이 좋습니다.

<code class="php">function getSSLPage($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSLVERSION, 3); 
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

var_dump(getSSLPage("https://eresearch.fidelity.com/eresearch/evaluate/analystsOpinionsReport.jhtml?symbols=api"));</code>

이 솔루션은 SSL 버전을 명시적으로 v3으로 설정하여 컬이 SSL 핸드셰이크를 성공적으로 처리할 수 있도록 합니다.

Windows 사용자를 위한 추가 고려 사항

Windows 사용자의 경우 컬에 대한 루트 인증서 위치를 지정해야 할 수도 있습니다. 이는 다음을 통해 달성할 수 있습니다.

<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);</code>

CURLOPT_SSL_VERIFYPEER 옵션을 true로 설정하면 컬이 지정된 루트 인증서에 대해 피어의 인증서를 확인합니다.

위 내용은 OpenSSL을 사용하여 file_get_contents()에 대한 암호화 초기화 실패를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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