>  기사  >  백엔드 개발  >  OpenSSL을 사용하여 HTTPS URL에 액세스할 때 \"경고: 암호화를 활성화하지 못했습니다\" 오류를 해결하는 방법은 무엇입니까?

OpenSSL을 사용하여 HTTPS URL에 액세스할 때 \"경고: 암호화를 활성화하지 못했습니다\" 오류를 해결하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-23 11:08:02379검색

How to Resolve

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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