OPENSSL 경고: 특정 HTTPS URL에 대해 "암호화 활성화 실패"
이 문제는 file_get_contents를 사용하여 특정 HTTPS URL에 액세스하려고 할 때 발생합니다. () 기능, openssl 확장을 활성화했음에도 불구하고. 이 함수는 필요한 암호화 작업을 수행할 수 없음을 나타내는 "경고: 암호화 활성화 실패" 오류 메시지를 반환합니다.
이 문제의 근본 원인은 문제가 있는 웹사이트에서 사용하는 보안 프로토콜에 있습니다. 이 경우 웹사이트는 오래되고 취약한 프로토콜인 SSLv3를 활용합니다. openssl의 기본 구성은 보안상의 이유로 SSLv3를 기본적으로 지원하지 않습니다.
이 문제를 해결하고 웹사이트에서 콘텐츠를 성공적으로 검색하려면 해결 방법이 필요합니다. 한 가지 옵션은 컬_setopt() 함수를 사용하여 사용할 SSL 버전을 수동으로 지정하는 것입니다. 이는 CURLOPT_SSLVERSION 옵션을 SSLv3에 해당하는 3으로 설정하여 달성할 수 있습니다.
<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>
Windows에서 발생할 수 있는 또 다른 잠재적인 문제는 루트 인증서에 대한 액세스가 부족하다는 것입니다. 이 문제를 해결하려면 루트 인증서를 다운로드하고 CURLOPT_CAINFO 및 CURLOPT_SSL_VERIFYPEER 옵션을 사용하여 해당 위치를 수동으로 지정하는 것이 좋습니다.
<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);</code>
이러한 해결 방법을 구현하면 문제가 있는 인증서의 콘텐츠에 성공적으로 액세스하고 검색하는 것이 가능해집니다. openssl을 사용하는 웹사이트.
위 내용은 OpenSSL을 사용하여 HTTPS URL에 액세스할 때 '경고: 암호화를 활성화하지 못했습니다' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!