Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebe ich SSL-Timeout- und Krypto-Aktivierungsfehler in PHP für file_get_contents()?
SSL-Timeout und Krypto-Aktivierungsfehler für file_get_contents() behoben
Wenn Sie in PHP file_get_contents() zum Abrufen von Inhalten von HTTPS-Seiten verwenden, Es ist möglich, dass Fehler im Zusammenhang mit der SSL-Verschlüsselungsaktivierung auftreten. Ein solcher Fehler ist:
Warning: file_get_contents(): SSL: crypto enabling timeout... Warning: file_get_contents(): Failed to enable crypto...
Dieses Problem tritt auf, wenn in der PHP-Konfiguration die notwendigen Einstellungen fehlen, um Krypto für SSL-Verbindungen zu aktivieren. Um dies zu beheben, wird die folgende Lösung vorgeschlagen:
Verwendung von cURL mit SSLv3
Anstelle von file_get_contents() kann die cURL-Bibliothek verwendet werden, die eine bessere Kontrolle darüber bietet SSL-Einstellungen. Durch Festlegen der Option CURLOPT_SSLVERSION auf 3 wird SSLv3 aktiviert, wodurch möglicherweise das Problem behoben wird:
<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>
cURL für die SSL-Verifizierung konfigurieren
In bestimmten Fällen tritt das Problem auf kann auch auf fehlende oder unvollständige Root-Zertifikate zurückzuführen sein. Um eine ordnungsgemäße SSL-Überprüfung sicherzustellen, werden die folgenden Schritte empfohlen:
<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");</code>
<code class="php">curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);</code>
Durch die Implementierung dieser Lösungen können Sie die mit file_get_contents() in PHP verbundenen SSL-Timeout- und Krypto-Aktivierungsfehler beheben und Ihnen so die Aktivierung ermöglichen um Inhalte von HTTPS-Seiten ohne weitere Komplikationen abzurufen.
Das obige ist der detaillierte Inhalt vonWie behebe ich SSL-Timeout- und Krypto-Aktivierungsfehler in PHP für file_get_contents()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!