Pourquoi PHPMailer émet-il un avertissement PHP concernant un certificat incompatible dans PHP 5.6 ?

Linda Hamilton
Libérer: 2024-10-26 23:09:31
original
666 Les gens l'ont consulté

Why Does PHPMailer Emit a PHP Warning About a Mismatched Certificate in PHP 5.6?

PHPMailer émet un avertissement PHP en raison d'un certificat incompatible

Les utilisateurs de PHPMailer peuvent rencontrer un avertissement lors de la connexion à des hôtes SMTP sur PHP 5.6 :

PHP Warning: stream_socket_enable_crypto(): Peer certificate did not match expected
Copier après la connexion

Cet avertissement découle de la sécurité accrue de PHP 5.6, qui vérifie strictement les certificats SSL. L'avertissement suggère que le certificat présenté par l'hôte SMTP ne correspond pas au certificat attendu pour cet hôte.

Cause première :

La non-concordance se produit lorsque l'hôte SMTP présente un certificat qui n'a pas de nom commun (CN) correspondant au nom d'hôte attendu. Par exemple, si vous vous connectez à mx1.sub4.homie.mail.dreamhost.com et que le certificat CN est *.mail.dreamhost.com, PHP émettra l'avertissement.

Solution :

Pour résoudre ce problème, il existe deux approches :

  1. Contacter l'hébergeur SMTP : Demander à l'hébergeur de mettre à jour son certificat SSL pour avoir un CN qui correspond au nom d'hôte auquel vous vous connectez. Il s'agit de la solution recommandée et sécurisée.
  2. Configurer PHPMailer pour ignorer la vérification du certificat : Vous pouvez configurer PHPMailer pour ignorer l'incompatibilité du certificat en définissant les options SMTP suivantes :
$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer'  => false,
        'verify_peer_name'  => false,
        'allow_self_signed' => true
    )
);
Copier après la connexion

Remarque :La désactivation de la vérification du certificat n'est pas recommandée et ne doit être utilisée que comme solution temporaire.

Conclusion :

Le PHP L'avertissement « stream_socket_enable_crypto() : le certificat homologue ne correspond pas à celui attendu » peut être résolu soit en contactant l'hôte SMTP pour mettre à jour son certificat, soit en configurant PHPMailer pour ignorer la vérification du certificat. La solution recommandée consiste à demander à l'hôte SMTP de fournir un certificat valide correspondant au nom d'hôte.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!