"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como resolver o erro "Aviso: falha ao ativar a criptografia" ao acessar URLs HTTPS com OpenSSL?

Como resolver o erro "Aviso: falha ao ativar a criptografia" ao acessar URLs HTTPS com OpenSSL?

Publicado em 2024-11-02
Navegar:704

How to Resolve \

Aviso OPENSSL: "Falha ao ativar a criptografia" para URL HTTPS específico

Este problema surge ao tentar acessar URLs HTTPS específicos usando o file_get_contents (), apesar de ter habilitado a extensão openssl. A função retorna a mensagem de erro: "Aviso: Falha ao ativar a criptografia", indicando que as operações criptográficas necessárias não podem ser executadas.

A causa raiz deste problema está no protocolo de segurança usado pelo site problemático. Neste caso, o site utiliza SSLv3, que é um protocolo desatualizado e vulnerável. A configuração padrão do openssl não suporta SSLv3 por padrão por motivos de segurança.

Para resolver esse problema e recuperar com êxito o conteúdo do site, é necessária uma solução alternativa. Uma opção é usar a função curl_setopt() para especificar manualmente a versão SSL a ser usada. Isso pode ser conseguido definindo a opção CURLOPT_SSLVERSION como 3, que corresponde a SSLv3.

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"));

Outro problema potencial que pode surgir no Windows é a falta de acesso a certificados raiz. Para resolver isso, é recomendável baixar os certificados raiz e especificar manualmente sua localização usando as opções CURLOPT_CAINFO e CURLOPT_SSL_VERIFYPEER.

curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

Ao implementar essas soluções alternativas, torna-se possível acessar e recuperar com êxito o conteúdo do site problemático usando o openssl.

Declaração de lançamento Este artigo foi reimpresso em: 1729647257 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3