Creation du certificat SSL pour un site de test local EasyPHP en localhost

Depuis la version 5.6 de PHP il faut un certificat SSL pour envoyer des mails avec le protocole SMTP TSL.

Pas de problème pour les sites hébergés par Ouvaton. Mais pour un site de test installé en localhost avec EasyPHP l’envoi de mails qui fonctionnait avec une ancienne version de PHP ne fonctionne plus quand on passe à la version 5.6.30

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 in C:\Users\toto\voyart\voyart\membres\PHPMailer\class.smtp.php on line 270

Problème : Comment créer en local un certificat SSL de test, gratuit et éternel ?

Bonjour,

Concernant le certificat vous pouvez vous aider de https://kgaut.net/blog/2016/creer-un-certificat-ssl-autosigne-pour-le-developpement-en-local.html.

Et pour PHPMailer et les certificats auto-signés voir https://github.com/PHPMailer/PHPMailer/issues/368 et en particulier les options ci-dessous :

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

Merci de votre aide :slight_smile: , avec le lien que vous m’avez fourni, ainsi que celui-ci : https://www.developpez.net/forums/d894806/webmasters-developpement-web/serveurs-apache-iis/apache/activer-ssl-easyphp-5-3-a/ j’ai pu installer un certificat autosigné sur mon localhost géré par EasyPHP-Devserver-17 et j’ai pu accéder à mon site local avec https.
Quand j’aurai un peu de temps j’expliquerai cela dans le forum.
Pour l’envoi de mail avec le protocole TLS, j’ai modifié mon programme d’envoi de mail écrit avec PHPMailer 6.0 :

`	$monMail = new PHPMailer();
	...
   ...
	if ($_SERVER['SERVER_NAME']=='127.0.0.1') {
		$monMail->SMTPOptions = array(
		'ssl' => array(
	        'verify_peer' => false,
	         'verify_peer_name' => false,
	         'allow_self_signed' => true
	         )
	   );
	}
` 

Tout fonctionne…

:smile:Merci encore.

1 Like