PHPMailer での SSL 証明書検証の失敗のトラブルシューティング
PHPMailer ユーザーが自己を使用してサーバーから電子メールを送信すると、「SSL3_GET_SERVER_CERTIFICATE: 証明書の検証に失敗しました」エラーが発生する場合があります-署名された証明書。この問題は、PHP 5.6 で導入された SSL 証明書検証が原因で発生します。
根本原因:
デフォルトでは、PHPMailer は SSL 証明書を検証して、その信頼性を確認します。自己署名証明書が見つかった場合、適切な CA (認証局) が存在しないため検証は失敗します。
解決策:
この問題を解決するには、 2 つのオプションがあります:
1. SSL 構成を修正します:
可能であれば、信頼できる CA によって署名された有効な SSL 証明書を取得し、メール サーバーに正しくインストールします。これにより、証明書の検証が確実に成功します。
2. SSL 証明書検証を無効にする (非推奨):
警告: 証明書検証を無効にすると、セキュリティに重大な影響が生じます。中間者攻撃のリスクにさらされます。
証明書の検証を無効にするには、次の PHPMailer オプションを設定します。
<code class="php">$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );</code>
検証を無効にするには、PHPMailer ライブラリを編集します。アップグレード時に機能しなくなるため、強くお勧めしません。
セキュリティに関する考慮事項:
SSL 証明書の検証の無効化は、長期的な解決策ではなく、一時的な回避策としてのみ考慮する必要があります。潜在的なセキュリティ侵害を防ぐために、SSL 構成を保護することが重要です。
以上がPHPMailer の「SSL3_GET_SERVER_CERTIFICATE: 証明書の検証に失敗しました」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。