Dopo aver aggiornato il mio iPhone 6+ da iOS 8 a iOS 9, il mio account e-mail IMAP ha smesso di funzionare. Quando l'app Mail tenta di connettersi al server, fallisce e visualizza un avviso con il titolo "Can not get Mail" e il messaggio "Il server di posta xyz non risponde. Verificare di aver inserito le informazioni sull'account corrette nelle impostazioni Mail. ".
Ho controllato le informazioni sull'account ed è effettivamente corretto. È interessante notare che non ottengo eventuali messaggi di errore dall'app delle impostazioni quando provo a salvare l'account. Ho provato a inserire informazioni errate di proposito (nome utente errato, password errata, porta TCP errata), e ogni volta che lo faccio e provo a salvare l'account, l'app delle impostazioni mostra un avviso "Il server IMAP x.y.z non risponde.". Quindi sono veramente sicuro che le informazioni che ho inserito siano corrette.
Inoltre, ho altri due dispositivi iOS in casa (un iPad 2 e un iPhone 4S) che sono configurati per utilizzare lo stesso account e che sono ancora su iOS 8 - da questi dispositivi l'account funziona correttamente, quindi anch'io sappi che il problema non è qualcosa di fondamentale come il server IMAP è inattivo.
Ho provato varie cose (vedi sotto), ma senza successo. L'unica cosa che so per certo è che il problema è in qualche modo collegato a TLS e / o certificati. Prendendo in considerazione le informazioni di questa domanda AskDifferent ho il sospetto che si tratti di un problema con il certificato CAcert, ma non sono sicuro .
Sai qualcosa dei cambiamenti in iOS 9 relativi alla gestione dei certificati (non attendibili o meno)? O hai altri indizi che potrebbero aiutarmi a risolvere questo problema?
Informazioni sul server:
- Il server IMAP gira su una macchina Debian su cui ho il controllo completo
- Il server IMAP è Courier IMAP
- Il server IMAP accetta connessioni sulla porta IMAP standard 143
- Il server IMAP richiede STARTTLS per far sì che tutto il traffico sia crittografato tramite TLS
- Il server IMAP utilizza un certificato jolly
- Il server IMAP fornisce l'intera catena di certificati al client
- La CA radice è CAcert.org ( link ai certificati CA radice e intermedia )
- Poiché CAcert.org non è, per impostazione predefinita, nell'archivio CA di fiducia di iOS 9, ho installato manualmente i certificati CA radice e intermedia su iPhone 6 +
- Versione Courier = 0.73.1 (
/usr/bin/imapd --version
) - OpenSSL version = 1.0.2d (
/usr/bin/openssl version
)
Che cosa ho provato?
- La prima cosa che ho fatto è che ho eliminato l'intera configurazione dell'account nell'app delle impostazioni dell'iPhone, quindi ho creato un nuovo account e reinserito i dettagli di configurazione. Nessun successo.
- Ho aggiornato vari pacchetti sulla macchina Debian, inclusi Courier e OpenSSL, per assicurarmi che il server abbia le funzionalità di sicurezza "più recenti e migliori". Nessun successo.
- I leggi da qualche parte che iOS 9 potrebbe richiedere TLS 1.2 sul lato server, quindi ho ricontrollato che il server IMAP offre effettivamente quella versione di TLS ai suoi client. Lo fa. Questo è il comando che ho usato per la verifica:
openssl s_client -connect mail.herzbube.ch:143 -starttls imap
. Se lo esegui, vedrai un blocco con informazioni sulla sessione SSL verso la fine, questo blocco contiene una riga che mostra la versione TLS utilizzata (Protocol : TLSv1.2
). Si noti che per ottenere TLS v1.2, anche la versione lato client di OpenSSL deve supportare questo. Ad esempio, OpenSSL sul mio laptop Mac OS X Yosemite (10.10.3) è troppo vecchio, cioè è solo la versione 0.9.8.zd e non sembra comprendere TLS 1.2, quindi ottengoProtocol : TLSv1
. - Ho eliminato i certificati root e intermedi CAcert sull'iPhone, quindi li ho reinstallati. No, non ha aiutato.
- Ho disabilitato temporaneamente il requisito per TLS sul lato server, e questo risolve il problema, cioè ora l'app Mail può connettersi, accedere e ricevere e-mail dal server. Ovviamente questa non è una soluzione reale, dal momento che non voglio che il traffico al server IMAP sia in chiaro, ma almeno ora so che il problema è in qualche modo connesso a TLS (e / o certificati).
- Ho aggiornato l'iPhone con iOS 9.0.1. Nessun successo.