Tuve un problema con PHPMailer que de repente decía que mi certificado había caducado y me negaba a conectarme correctamente al puerto 587 con cifrado TLS, desde el 1 de octubre de 2021.
Cambiar las banderas SSL a no verificar_peer y no verificar_peer_name solucionará temporalmente el problema del correo electrónico.
$mail->SMTPOptions = array ( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ));Pero no es una solución ideal.
Si voy al mismo servidor a través del puerto 80 y la web, no hay nada malo con el certificado.
Si me conecto con la línea de comandos de OpenSSL, dice que el certificado expiró el 30 de septiembre de 2021.
Este problema también aparece bajo el comando php file_get_contents.
NOTA: Este problema es específico de PHPMailer y correo electrónico y proporciona buena información sobre PHPMailer, no debe cerrarse. No tiene nada que ver con la ventana acoplable o la otra pregunta asociada con otra que la causa y la solución son similares.
El problema aquí es un certificado de autoridad caducado real incrustado en la cadena LetsEncrypt que realmente caducó el 30 de septiembre de 2021.
Del blog de openssl... La cadena de certificados actualmente recomendada tal como se presenta a los clientes de Let's Encrypt ACME cuando se emiten nuevos certificados contiene un certificado intermedio (ISRG Root X1) que está firmado por un antiguo certificado DST Root CA X3 que vence el 2021-09 -30. En algunos casos, la versión OpenSSL 1.0.2 considerará que los certificados emitidos por Let's Encrypt CA tienen una cadena de confianza vencida.
Lea más aquí... https://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/
Afecta principalmente a OpenSSL 1.0.2. En mi Mac con OpenSSL 1.1.1 no tuve el problema.
CentOS, y estoy seguro de que otros han proporcionado soluciones a este problema...
Respaldo
cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backupAgregar certificado al directorio de la lista negra
trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | sudo tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pemActualizar tienda raíz
sudo update-ca-trust extractVerificar eliminación
diff ~/ca-bundle.crt-backup /etc/pki/tls/certs/ca-bundle.crtLos pasos específicos de CentOS anteriores son de esta publicación... https://blog.devgenius.io/rhel-centos-7-fix-for-lets-encrypt-change-8af2de587fe4#:~:text=So%2C%20DST %20Root%20CA%20X3%20necesita%20a%20ser,Los%20pasos%20manuales%20debajo%20son%20no%20más%20necesarios .
Este es un problema bastante loco que apareció de la nada (a menos que siga el blog de openSSL)
Me tomó aproximadamente 1 día rastrear, todo el tiempo no se envían correos electrónicos y grandes partes del sitio web no aparecen.
Espero que esto apunte a la gente en la dirección correcta.
ACTUALIZACIÓN: Como señaló @hakre, es posible que pueda salirse con la suya con solo...
yum upgrade ca-certificatesSimplemente edite el archivo fullchain.pem y elimine el último certificado. - si usa un sistema operativo diferente a la respuesta aceptada