ホームページ >バックエンド開発 >PHPチュートリアル >PHP での file_get_contents() の SSL タイムアウトと暗号化有効化エラーを解決する方法は?
file_get_contents() の SSL タイムアウトと暗号化有効化エラーが解決されました
PHP で、file_get_contents() を使用して HTTPS ページからコンテンツを取得する場合、 SSL 暗号化の有効化に関連するエラーが発生する可能性があります。そのようなエラーの 1 つは次のとおりです。
Warning: file_get_contents(): SSL: crypto enabling timeout... Warning: file_get_contents(): Failed to enable crypto...
この問題は、SSL 接続の暗号化を有効にするために必要な設定が PHP 構成にない場合に発生します。これを修正するために、次の解決策が提案されています。
SSLv3 で cURL を使用する
file_get_contents() の代わりに、cURL ライブラリを使用できます。これにより、より高度な制御が可能になります。 SSL設定。 CURLOPT_SSLVERSION オプションを 3 に設定すると、SSLv3 が有効になり、問題が解決される可能性があります:
<code class="php"><?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>
SSL 検証用の cURL の構成
場合によっては、ルート証明書の欠落または不完全が原因である可能性もあります。適切な SSL 検証を確実に行うには、次の手順をお勧めします:
<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");</code>
<code class="php">curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);</code>
これらのソリューションを実装すると、PHP の file_get_contents() に関連する SSL タイムアウトと暗号化有効化エラーを解決でき、複雑なことをせずに HTTPS ページからコンテンツを取得します。
以上がPHP での file_get_contents() の SSL タイムアウトと暗号化有効化エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。