27 Nov 2022 
Centre d'assistance » Base de connaissances » Echec dans les échanges SMTP TLS/SSL
 Connexion [Mot de passe perdu] 
Courriel:
Mot de passe:
Se souvenir de moi:
 
 Recherche
 Détails des articles
 Echec dans les échanges SMTP TLS/SSL
Solution IceWarp toutes versions -

Symptômes 
Le problème se traduit par un échec dans les échanges SMTP sur la séquence StartTLS
Voici quelques exemples.

Session cliente :

La connexion SSL a été vérifiée et la connexion est sécurisée:
46.105.36.90    [1AD4] 16:48:40:152 Client session >>> STARTTLS
46.105.36.90    [1AD4] 16:48:40:155 Client session <<< 220 2.0.0 Ready to start TLS
46.105.36.90    [1AD4] 16:48:40:173 Client session SSL: Verified (0)
46.105.36.90    [1AD4] 16:48:40:173 Client session >>> EHLO comserver.darnis.com

La connexion n'a pas été vérifiée mais est quand même sécurisée :
2a00:1450:400c:c06::1b [1AD4] 16:48:39:267 Client session >>> STARTTLS
2a00:1450:400c:c06::1b [1AD4] 16:48:39:276 Client session <<< 220 2.0.0 Ready to start TLS
2a00:1450:400c:c06::1b [1AD4] 16:48:39:288 Client session SSL: Not verified (20) - proceed anyway
2a00:1450:400c:c06::1b [1AD4] 16:48:39:288 Client session >>> EHLO comserver.darnis.com

Erreurs possibles : 20 (Unable to Get Local User Certificate), 19 (self signed certificate in certificate chain), 18 (self signed certificate), 6 (SSL handshake failed)
Cela signifie généralement que le certificat distant est inexistant ou non valide.

La connexion sécurisée n'a pas pu être établie :
178.251.163.242 [1F70] 12:51:22 Client session <<< 250 STARTTLS
178.251.163.242 [1F70] 12:51:22 Client session >>> STARTTLS
178.251.163.242 [1F70] 12:51:22 Client session <<< 220 Go ahead with TLS
178.251.163.242 [1F70] 12:51:22 Client session TLS connection could not be established
>>> (SSLv2/v3 write client hello B ,771,22) 010001fc0303c......350084c012c008c01cc0 (512)
<<< (SSLv2/v3 read server hello A ,769,21) 0232


Session serveur :

La connexion sécurisée a été établie :
145.239.37.84   [12EC] 00:00:50:393 <<< STARTTLS
145.239.37.84   [12EC] 00:00:50:404 >>> 220 2.0.0 Ready to start TLS
145.239.37.84   [12EC] 00:00:50:430 <<< EHLO mail.icewarptech.io

La connexion sécurisée n'a pas pu être établie :
54.39.247.55    [1880] 17:31:44:299 <<< STARTTLS
54.39.247.55    [1880] 17:31:44:312 >>> 220 2.0.0 Ready to start TLS
54.39.247.55    [1880] 17:31:44:394 SSL: Handshake with client failed on 192.168.10.2:25

Le problème peut avoir plusieurs origines :
- Différence d'heure entre le serveur et le client
- Pare-feu ou routeur qui perturbent l’échange (man in the middle)
- Certificat incorrect (erreur dans la chaîne, non valide, non applicable au nom d'hôte utilisé...)
- Protocole, cryptage : version du protocole TLS/SSL utilisé
On peut consulter la documentation SSL sur http://www.openssl.org/docs/ les différentes méthodes y sont expliquées
 
Contrôle des certificats et protocoles utilisés

Il est possible de vérifier le certificat d'un serveur sur :
Par exemple :

Les protocoles utilisés par un serveur peuvent être vérifiés sur :

par exemple en version 13.0 :


Configuration du serveur
Il faut que le serveur IceWarp annonce qu'il accepte les connexions TLS, pour cela, il faut que "Email -> Générale -> Avancé -> Protocole TLS/SSL" soit cochée

Puis vérifier les protocoles acceptés en allant dans Fichier -> Console API (mettre comme filtre ext.ssl), on peut voir et modifier la valeur des variables et la description de la méthode utilisée:

C_System_Adv_Ext_SSLServerMethod (0 par défaut) : Numéro de la méthode SSL à appliquer dans le cas des sessions serveurs SSL
C_System_Adv_Ext_SSLClientMethod (0 par défaut) : Numéro de la méthode SSL à appliquer dans le cas des sessions clientes SSL

en version 13.0, on obtient :
C_System_Adv_Ext_SSLServerMethod              
0 - Valeur par défaut actuellement égale à 6
1 - =3
2 - =3
3 - SSL3;TLS1.0;TLS1.1;TLS1.2;TLS1.3
4 - TLS1.0;TLS1.1;TLS1.2;TLS1.3
5 - TLS1.1;TLS1.2;TLS1.3
6 - TLS1.2;TLS1.3 (=5 sur Linux RHEL5 et RHEL6),
7 - TLS1.2 seulement

 C_System_Adv_Ext_SSLClientMethod                  
0 - Valeur par défaut actuellement égale à 6
1 - =3
2 - =3
3 - SSL3;TLS1.0;TLS1.1;TLS1.2;TLS1.3
4 - TLS1.0;TLS1.1;TLS1.2;TLS1.3
5 - TLS1.1;TLS1.2;TLS1.3
6 - TLS1.2;TLS1.3
7 - TLS1.2 seulement

Il est déconseillé d'utiliser des protocoles anciens comme SSL3 ou TLS1.0 qui ne sont pas sûrs.
Il vaut donc mieux garder la valeur par défaut 0 (=6) qui limite aux protocoles TLS1.2 et TLS1.3

Il est conseillé de mettre la même méthode pour le client et le serveur sauf s'il y a un besoin avéré de ne pas le faire.




Modifié le 20/10/2022


Détails des articles
Code d'identification de l'article: 375
Créé le: 01 Jul 2014 01:09 PM

 Cette réponse m'a été utile  Cette réponse ne m'a pas été utile