Maison >développement back-end >tutoriel php >Pourquoi PHPMailer génère-t-il une erreur « Incompatibilité de certificat homologue » sous PHP 5.6 ?

Pourquoi PHPMailer génère-t-il une erreur « Incompatibilité de certificat homologue » sous PHP 5.6 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 06:23:29591parcourir

 Why Does PHPMailer Throw a

Avertissement PHPMailer : incompatibilité de certificat homologue

Les utilisateurs de PHPMailer rencontrant l'erreur "Avertissement PHP : stream_socket_enable_crypto() : le certificat homologue ne correspond pas à l'attente" sous PHP 5.6 peut rencontrer des problèmes de validation des certificats.

Contexte :

PHP 5.6 a introduit une vérification de certificat plus stricte pour les connexions SSL. Par conséquent, si la configuration SSL du serveur distant est incorrecte, PHPMailer ne parviendra pas à chiffrer la connexion.

Symptômes :

  • Erreur d'échec de connexion : PHPMailer affiche "Impossible de se connecter à l'hôte SMTP."
  • Erreur de journalisation : Le journal affiche un avertissement de non-concordance de certificat : "Certificat homologue CN=*.mail.dreamhost.com ...' ne correspond pas à l'attente CN=mx1.sub4.homie.mail.dreamhost.com...'".
  • Commande QUIT immédiat : PHPMailer peut émettre une commande QUIT après tentative de STARTTLS, indiquant un échec de chiffrement.

Solution :

La solution recommandée consiste à corriger les paramètres de certificat ou de vérification sur le serveur distant. Cela peut impliquer le remplacement d'un certificat invalide par un certificat valide ou la reconfiguration des paramètres SSL.

Alternative :

Si une livraison immédiate est nécessaire et que la non-concordance du certificat n'est pas critique, vous pouvez désactiver la validation des certificats dans PHPMailer en utilisant les options suivantes :

$mail->SMTPOptions = array (
    'ssl' => array(
        'verify_peer'  => false,
        'verify_peer_name'  => false,
        'allow_self_signed' => true));

Remarque : La désactivation de la validation des certificats n'est pas recommandée car elle compromet la sécurité en acceptant potentiellement des certificats invalides.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn