OPENSSL과 함께 file_get_contents()를 사용하는 동안 "암호화 활성화 실패" 오류가 발생하면 조사하는 것이 중요합니다. 근본적인 문제.
근본 원인 식별
제공된 오류 로그는 암호화 초기화 중 시간 초과를 제안합니다. 그러나 문제는 다른 곳에 있을 수 있습니다. 한 가지 가능한 원인은 웹 사이트가 SSLv3과 같은 지원되지 않는 SSL 버전을 사용하기 때문입니다.
cURL을 사용하는 솔루션
file_get_contents()의 제한을 우회하고 SSLv3 지원을 활성화하려면 , 대신 cURL을 사용하는 것이 좋습니다.
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"));
이 솔루션은 SSL 버전을 명시적으로 v3으로 설정하여 컬이 처리할 수 있도록 합니다. SSL 핸드셰이크가 성공적으로 이루어졌습니다.
Windows 사용자를 위한 추가 고려 사항
Windows 사용자의 경우 컬용 루트 인증서 위치를 지정해야 할 수도 있습니다. 이는 다음을 통해 달성할 수 있습니다:
curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
CURLOPT_SSL_VERIFYPEER 옵션을 true로 설정하면 컬은 지정된 루트 인증서에 대해 피어의 인증서를 확인합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3