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 :)