PHPMailer SSL 検証の問題: 証明書の検証に失敗しました
問題:
送信しようとしたとき自己署名証明書を含むメールサーバーからメールを送信すると、PHPMailer が次のエラーをスローします:
PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in class.smtp.php on line 327.
解決策:
PHP 5.6 以降、SSL 証明書の検証が行われるようになりました。紹介されました。検証せずに古い動作に戻すには、PHPMailer で SMTPOptions プロパティを設定します。
<code class="php">$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );</code>
注:
SSL 検証を無効にすると、セキュリティに影響します。検証を行わないと、悪意のある攻撃者が信頼できるエンドポイントになりすまして中間者攻撃を実行する可能性があります。このソリューションを使用する前に、次のリスクを考慮してください。
以上が自己署名証明書で PHPMailer を使用するときに発生する「証明書の検証に失敗しました」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。