6 votes

Le compte IMAP a cessé de fonctionner après la mise à jour vers iOS 9 - problème avec le certificat CAcert ?

Après avoir mis à jour mon iPhone 6+ d'iOS 8 à iOS 9, mon compte de messagerie IMAP a cessé de fonctionner. Lorsque l'application Mail tente de se connecter au serveur, elle échoue et affiche une alerte avec le titre "Cannot get Mail" et le message "The mail server x.y.z is not responding. Vérifiez que vous avez entré les bonnes informations de compte dans les paramètres de Mail".

J'ai vérifié les informations relatives au compte et elles sont effectivement correctes. Il est intéressant de noter que j'ai no Je ne reçois aucun message d'erreur de l'application Paramètres lorsque j'essaie de sauvegarder le compte. J'ai essayé de saisir volontairement des informations erronées (mauvais nom d'utilisateur, mauvais mot de passe, mauvais port TCP), et à chaque fois que je fais cela et que j'essaie de sauvegarder le compte, l'application settings affiche une alerte "The IMAP server x.y.z is not responding." (Le serveur IMAP x.y.z ne répond pas). Je suis donc vraiment que les informations que j'ai saisies sont correctes.

De plus, j'ai deux autres appareils iOS dans la maison (un iPad 2 et un iPhone 4S) qui sont configurés pour utiliser le même compte et qui sont toujours sous iOS 8 - à partir de ces appareils, le compte fonctionne correctement, donc je sais aussi que le problème n'est pas quelque chose de basique comme le fait que le serveur IMAP est en panne.

J'ai fait plusieurs tentatives (voir ci-dessous), mais sans succès. La seule chose dont je suis certain, c'est que le problème est lié d'une manière ou d'une autre à TLS et/ou aux certificats. En tenant compte des informations fournies par cette question AskDifferent Je pense qu'il s'agit d'un problème avec le certificat CAcert, mais je n'en suis pas sûr.

Avez-vous connaissance de changements dans iOS 9 concernant la gestion des certificats (non fiables ou autres) ? Ou avez-vous d'autres indices qui pourraient m'aider à résoudre ce problème ?


Informations sur le serveur :

  • Le serveur IMAP fonctionne sur une machine Debian dont j'ai le contrôle total
  • Le serveur IMAP est Courier IMAP
  • Le serveur IMAP accepte les connexions sur le port IMAP standard 143
  • Le serveur IMAP a besoin de STARTTLS pour s'assurer que tout le trafic est crypté via TLS.
  • Le serveur IMAP utilise un certificat de type "wildcard".
  • Le serveur IMAP fournit l'ensemble de la chaîne de certificats au client.
  • L'autorité de certification racine est CAcert.org ( lien vers les certificats de l'autorité de certification racine et intermédiaire )
  • CAcert.org n'étant pas, par défaut, dans la liste des AC de confiance d'iOS 9, j'ai installé manuellement les certificats de l'AC racine et intermédiaire sur l'iPhone 6+.
  • Version de Courier = 0.73.1 ( /usr/bin/imapd --version )
  • Version d'OpenSSL = 1.0.2d ( /usr/bin/openssl version )

Qu'ai-je essayé ?

  • La première chose que j'ai faite est de supprimer toute la configuration du compte dans l'application de réglages de l'iPhone, puis de créer un nouveau compte et de réintroduire les détails de la configuration. Je n'ai pas réussi.
  • J'ai mis à jour plusieurs paquets sur la machine Debian, y compris Courier et OpenSSL, pour m'assurer que le serveur dispose des capacités de sécurité les plus récentes et les plus performantes. Sans succès.
  • I lire quelque part qu'iOS 9 pourrait nécessiter TLS 1.2 côté serveur, j'ai donc vérifié que le serveur IMAP propose bien cette version de TLS à ses clients. C'est le cas. Voici la commande que j'ai utilisée pour la vérification : openssl s_client -connect mail.herzbube.ch:143 -starttls imap . Si vous exécutez ceci, vous verrez un bloc avec des informations sur la session SSL vers la fin, ce bloc contient une ligne qui montre la version TLS qui est utilisée ( Protocol : TLSv1.2 ). Notez que pour obtenir TLS v1.2, votre version d'OpenSSL côté client doit également le supporter. Par exemple, OpenSSL sur mon ordinateur portable Mac OS X Yosemite (10.10.3) est trop vieux, c'est-à-dire qu'il n'est que la version 0.9.8.zd et ne semble pas comprendre TLS 1.2, donc j'obtiens Protocol : TLSv1 .
  • J'ai supprimé les certificats CAcert Root et intermédiaires sur l'iPhone, puis je les ai réinstallés. Non, cela n'a pas aidé.
  • J'ai temporairement désactivé l'exigence de TLS du côté du serveur, et cela résout le problème, c'est-à-dire que l'application Mail peut maintenant se connecter, s'identifier et recevoir des courriels du serveur. Évidemment, ce n'est pas une vraie solution, puisque je ne veux pas que le trafic vers le serveur IMAP soit en texte clair, mais au moins je sais maintenant que le problème est lié d'une manière ou d'une autre à TLS (et/ou aux certificats).
  • J'ai mis à jour l'iPhone vers iOS 9.0.1. Sans succès.

1voto

wheelcritter Points 11

J'ai le même problème, mais je n'ai pas encore reçu de réponse. J'espère que je me rapproche d'une solution et que j'ai des informations pertinentes pour vous.

J'ai le problème iOS 9 que vous décrivez avec mon Courier IMAP, mais pas avec mon SASL SMTP AUTH. La cryptographie sur les 2 serveurs est similaire.

Notamment, ils utilisent tous deux des certificats auto-signés.

Voici les résultats de "openssl s_client" que j'observe :

Courier IMAP (iOS 9 rejects)
------------
$ openssl s_client -connect 127.0.0.1:143 -starttls imap

No client certificate CA names sent
---
SSL handshake has read 3092 bytes and written 479 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : DHE-RSA-AES256-GCM-SHA384
    Session-ID: 4E1B8D0D14AC480A4203C1898A0C75D57DE646547A9F9FC3D47CDFD1926B7C0C
    Session-ID-ctx:
    Master-Key: 4E9D26764E93204AE2C7232E72328C30B38A272B6500D1E524FDA25FEA86EDEBEA22416BECEF78DC8713E5CC5850060D
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - ad ad c0 42 ad 10 be 6b-2b 3e c0 79 79 8c 12 03   ...B...k+>.yy...
    0010 - 74 06 9d ed 1b 72 90 0b-f7 ff f5 f7 1e 2f 6f ec   t....r......./o.
    0020 - a2 ea 8f ac 5a 64 b2 9e-b8 3f 09 56 31 b0 c3 76   ....Zd...?.V1..v
    0030 - c8 b7 83 94 dc 04 81 1a-fe a7 72 4d 50 9c 18 e7   ..........rMP...
    0040 - bd b2 2a cf 0b 29 1c f5-23 75 30 0e fe c9 0a 94   ..*..)..#u0.....
    0050 - 6f c2 e9 ba fa fd b7 f2-33 83 34 91 75 bb 30 4a   o.......3.4.u.0J
    0060 - f1 68 5f 3b 3d f4 12 db-5e 52 82 e7 6f 35 83 c9   .h_;=...^R..o5..
    0070 - 49 39 03 a4 08 8e 60 26-9a a7 5f 18 26 47 f7 ae   I9....`&.._.&G..
    0080 - 07 29 68 7b 5a 5d ad 2f-7d ea 02 f9 00 c8 53 64   .)h{Z]./}.....Sd
    0090 - 1e c9 6e e6 b1 e9 59 83-f2 7a 13 0c 7f c7 44 7a   ..n...Y..z....Dz

    Start Time: 1442747573
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
. OK CAPABILITY completed

SMTP AUTH (iOS 9 accepts)
---------
$ openssl s_client -connect 127.0.0.1:25 -starttls smtp

No client certificate CA names sent
---
SSL handshake has read 1637 bytes and written 456 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 7B733E6F86EDC34FB2C399E6571263286DB3A3BE94CA04BD0146A9EE3602D6CF
    Session-ID-ctx:
    Master-Key: F72207EFCC8AF316D3BD120C2F11D45FBE9861EF0155CAEFE08395F239541FEE5AEA0D27CDB18B2BB7C5CAF9A8D22832
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - ff 5b be 3e 40 a4 c9 6f-f8 67 00 c9 ac 86 16 27   .[.>@..o.g.....'
    0010 - a9 df 68 57 d1 5c 16 1a-27 e5 2a 74 91 2f b0 28   ..hW.\..'.*t./.(
    0020 - 3f ec 58 2c 0c 23 d9 cb-8b 03 c5 7d 97 de 96 c7   ?.X,.#.....}....
    0030 - fb 25 47 0d b8 7b 5a 45-0c 55 8e 7c 6d 2e 12 76   .%G..{ZE.U.|m..v
    0040 - 8c 2b 1f 2b 27 3f d6 98-fd 23 3f 26 07 de f5 3e   .+.+'?...#?&...>
    0050 - be e7 ed 08 3d 0d b9 d3-6d a0 6d 25 2f cf b1 65   ....=...m.m%/..e
    0060 - e1 36 f2 78 1d f4 36 4f-f4 e5 67 a1 16 e7 22 4c   .6.x..6O..g..."L
    0070 - c1 80 59 dc 58 72 16 15-73 73 8d 9f ef 67 bb 37   ..Y.Xr..ss...g.7
    0080 - db a8 24 32 ee ce 5e 67-c1 8a 94 11 5c 3c b0 ff   ..$2..^g....\<..
    0090 - 3a 73 6a bf 77 07 94 d4-06 6c 27 00 9d 3f 61 4e   :sj.w....l'..?aN

    Start Time: 1442747626
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
250 DSN

J'étudie donc maintenant la différence entre "ECDHE" et "DHE", et je cherche à savoir si les clés publiques de serveur de 4096 ou de 2048 bits font une différence.

Je suppose qu'Apple applique les mêmes normes à STARTTLS pour SMTP et IMAP...

1voto

Cesar Bielich Points 153

Mail fonctionnait bien dans iOS 9.1 jusqu'à ce que je change l'"alerte" dans Notifications pour "alerte" aujourd'hui. J'ai alors reçu un message disant quelque chose comme "Cannot get Mail" et que j'utilisais les mauvaises informations de connexion. (J'ai essayé deux fois et j'ai obtenu le même message, mais je me suis immédiatement souvenu de ce que j'avais modifié dans les "Réglages" plus tôt dans la journée, alors je suis retourné dans Réglages>Notifications>Style de notifications>Mail>Style d'alertes et j'ai sélectionné "Aucun". Lorsque je suis retourné à l'application Mail, tout fonctionnait à nouveau correctement. (J'utilise GMail).

0voto

user148371 Points 11

Nous avons eu le même problème dans notre entreprise. Nous avons pratiquement la même configuration : Debian, Courier IMAP et IOS9. Pour nous, le problème s'est résolu en utilisant le port 143 pour la connexion ssl imap.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X