Saltar al contenido

PHPMailer genera PHP Advertencia: stream_socket_enable_crypto (): el certificado de pares no coincide con el esperado

Solución:

Tuve el mismo problema y encontré la respuesta en la documentación de PHPMailer.

Fallo de verificación del certificado PHP 5.6

A diferencia de las versiones anteriores, PHP 5.6 verifica certificados en conexiones SSL. Si la configuración SSL del servidor al que se está conectando no es correcta, obtendrá un error como este:

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

La solución correcta para esto es reemplazar el certificado no válido, mal configurado o autofirmado por uno bueno. De lo contrario, puede permitir conexiones inseguras a través de la propiedad SMTPOptions introducida en PHPMailer 5.2.10 (es posible hacer esto subclasificando la clase SMTP en versiones anteriores), aunque esto no se recomienda:

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

También puede cambiar estas configuraciones globalmente en su php.ini, pero esa es una muy mala idea; PHP 5.6 realizó este cambio por muy buenas razones.

A veces, este comportamiento no es tan evidente; a veces, pueden aparecer fallas de cifrado cuando el cliente emite un SALIR inmediatamente después de intentar hacer un STARTTLS. Si ve que eso sucede, debe verificar el estado de sus certificados o la configuración de verificación.

Para PHP 5.6 use lo siguiente. Agregar “tls: //” es la clave.

$mail->Host = gethostbyname('tls://smtp.gmail.com');

Ver: http://php.net/manual/en/context.ssl.php

Para aquellos de ustedes que usan cPanel, probé el código de verificación SMTP de la carpeta de ejemplos en PHPMailer y obtuve este mismo error:

PHP Warning: stream_socket_enable_crypto(): Peer certificate  CN=*.mail.dreamhost.com' did not match expected CN=mx1.sub4.homie.mail.dreamhost.com' in /home/ikbb/domains/dev.ikbb.com/public_html/includes/phpmailer/5.2.10/class.smtp.php

Me di cuenta de que no era un error relacionado con PHPMailer, así que busqué errores similares relacionados con CentOS y encontré este enlace que arrojó algo de luz: Problema al enviar correos a través de terceros. Tienes que echar un vistazo a “Restricciones SMTP” en cPanel.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *