Troubleshooting · PHPMailer/PHPMailer Wiki · GitHub

#certificate-verification-failure

  • Suite à l’upgrade d’un serveur de #debian wheezy vers #jessie, je rencontrais des erreurs avec le plugin #facteur pour #SPIP. Le problème est bien documenté dans le wiki de la classe #PHPMailer cf :

    PHP versions since 5.6 verify certificates on SSL connections. If there’s a problem relating to the certificate, you will get an error like this:

    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

    https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting#certificate-verification-failure

    Ce que confirme openssl avec le test suivant openssl s_client -connect domaine.net:443 qui renvoyait l’erreur Verify return code: 21 (unable to verify the first certificate).

    Pour corriger ça, j’ai simplement ajouté le certificat de GANDI (puisque le domaine est chez eux) sur le serveur :

    cd /usr/local/share/ca-certificates/
    wget https://www.gandi.net/static/CAs/GandiStandardSSLCA2.pem
    mv GandiStandardSSLCA2.pem GandiStandardSSLCA2.crt
    update-ca-certificates

    Cette fois, le test avec openssl renvoie bien Verify return code: 0 (ok) et l’envoie de mail depuis le plugin facteur fonctionne de nouveau.

    PS : pour supprimer un certificat ajouté manuellement, il faut supprimer son fichier .pem et lancer la commande update-ca-certificates --fresh

    J’allais citer la source en ligne, mais je vois qu’elle est référencée ici https://seenthis.net/messages/610192, c’est beau seenthis :)