"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 falha na inicialização da criptografia para file_get_contents() usando OpenSSL?

Como resolver falha na inicialização da criptografia para file_get_contents() usando OpenSSL?

Publicado em 01/11/2024
Navegar:901

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

Solução de problemas de falha na inicialização da criptografia para file_get_contents() com OPENSSL

Ao encontrar o erro "Falha ao ativar a criptografia" ao usar file_get_contents() com OPENSSL, é crucial investigar o problema subjacente.

Identificando a causa raiz

O log de erros fornecido sugere um tempo limite durante a inicialização da criptografia. No entanto, o problema pode estar em outro lugar. Uma possível causa é que o site usa uma versão SSL não suportada, como SSLv3.

Solução usando cURL

Para ignorar as limitações de file_get_contents() e ativar o suporte SSLv3 , é recomendado usar 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"));

Esta solução define explicitamente a versão SSL para v3, permitindo que curl manipule o handshake SSL com sucesso.

Considerações adicionais para usuários do Windows

Para usuários do Windows, também pode ser necessário especificar o local dos certificados raiz para curl. Isso pode ser alcançado por:

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

Ao definir a opção CURLOPT_SSL_VERIFYPEER como true, o curl verificará o certificado do par em relação aos certificados raiz especificados.

Declaração de lançamento Este artigo foi reimpresso em: 1729647016 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