stream_socket_enable_crypto() エラー: SSL オペレーションがコード 1 で失敗しました
Amazon EC2 Linux で PHP 5.6 と GoDaddy SSL 証明書を使用すると、 Mailgun または他の SMTP サービスを SSL 経由で電子メール送信中にエラーが発生する可能性があります:
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
根本原因
このエラーは、PHP に導入されたより厳格な SSL 証明書検証が原因で発生します。 5.6.デフォルトでは、PHP は URL 内のドメイン名を証明書内のドメイン名と照合します。 GoDaddy の SSL 証明書はワイルドカード証明書であるため、サーバーの特定のドメイン名と一致しません。
解決策
この問題を解決するには 2 つの方法があります。
オプション 1: 証明書検証を無効にする
<code class="php">'stream' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ],</code>
注意: 証明書検証を無効にすると、アプリケーションのセキュリティが危険にさらされる可能性があります。代わりにオプション 2 を使用するか、PHP 7.2 以降にアップグレードすることをお勧めします。
オプション 2: PHP をアップグレードする
PHP バージョン 7.2 以降には、この問題に対する修正が含まれています。問題。 PHP バージョンをアップグレードすると、このエラーが解決され、アプリケーションのセキュリティが維持されます。
以上がPHP 5.6 と GoDaddy SSL を使用して「stream_socket_enable_crypto(): SSL Operation Failed with Code 1」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。