stream_socket_enable_crypto() Fehler: SSL-Vorgang mit Code 1 fehlgeschlagen
Bei Verwendung von PHP 5.6 und einem GoDaddy SSL-Zertifikat auf Amazon EC2 Linux, an Beim E-Mail-Versand mit Mailgun oder anderen SMTP-Diensten über SSL kann ein Fehler auftreten:
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Ursache
Dieser Fehler tritt aufgrund der in PHP eingeführten strengeren SSL-Zertifikatsüberprüfung auf 5.6. Standardmäßig vergleicht PHP den Domänennamen in der URL mit dem Domänennamen im Zertifikat. Da es sich beim SSL-Zertifikat von GoDaddy um ein Wildcard-Zertifikat handelt, stimmt es nicht mit dem spezifischen Domänennamen Ihres Servers überein.
Lösung
Es gibt zwei Möglichkeiten, dieses Problem zu beheben:
Option 1: Zertifikatsüberprüfung deaktivieren
<code class="php">'stream' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ],</code>
Achtung: Das Deaktivieren der Zertifikatsüberprüfung kann die Sicherheit Ihrer Anwendung gefährden. Es wird empfohlen, stattdessen Option 2 zu verwenden oder auf PHP 7.2 oder höher zu aktualisieren.
Option 2: PHP aktualisieren
PHP-Versionen 7.2 und höher enthalten einen Fix für dieses Problem Ausgabe. Durch ein Upgrade Ihrer PHP-Version wird dieser Fehler behoben und die Sicherheit Ihrer Anwendung gewährleistet.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „stream_socket_enable_crypto(): SSL Operation Failed with Code 1' unter Verwendung von PHP 5.6 und GoDaddy SSL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!