Depois de atualizar meu iPhone 6+ do iOS 8 para o iOS 9, minha conta de email IMAP parou de funcionar. Quando o aplicativo de email tenta se conectar ao servidor, ele falha e exibe um alerta com o título "Não é possível obter email" e a mensagem "O servidor de email xyz não está respondendo. Verifique se você inseriu as informações corretas da conta nas configurações de email. "
Eu verifiquei as informações da conta e está realmente correta. Curiosamente, não recebo nenhuma mensagem de erro do aplicativo de configurações quando tento salvar a conta. Tentei inserir informações incorretas de propósito (nome de usuário, senha incorretos, porta TCP incorreta) e sempre que faço isso e tento salvar a conta, o aplicativo de configurações exibe um alerta "O servidor IMAP xyz não está respondendo". Então, eu estou realmente certeza de que a informação que eu tenho introduzido está correcto.
Além disso, eu tenho dois outros dispositivos iOS em casa (um iPad 2 e um iPhone 4S) configurados para usar a mesma conta e que ainda estão no iOS 8 - a partir desses dispositivos, a conta funciona corretamente, então eu também sei que o problema não é algo básico, como o servidor IMAP está inoperante.
Eu tentei várias coisas (veja abaixo), mas sem sucesso. A única coisa que sei com certeza é que o problema está de alguma forma conectado ao TLS e / ou certificados. Levando em conta as informações desta pergunta AskDifferent , suspeito que seja um problema com o certificado CAcert, mas não tenho certeza.
Você sabe alguma coisa sobre as alterações no iOS 9 em relação à manipulação de certificados (não confiáveis ou não)? Ou você tem outras pistas que podem me ajudar a resolver esse problema?
Informações sobre o servidor:
- O servidor IMAP é executado em uma máquina Debian sobre a qual eu tenho controle total
- O servidor IMAP é Courier IMAP
- O servidor IMAP aceita conexões na porta IMAP padrão 143
- O servidor IMAP exige que o STARTTLS imponha que todo o tráfego seja criptografado via TLS
- O servidor IMAP usa um certificado curinga
- O servidor IMAP fornece toda a cadeia de certificados ao cliente
- A CA raiz é CAcert.org ( link para certificados de CA raiz e intermediária )
- Como o CAcert.org não está, por padrão, no repositório de CA confiável do iOS 9, instalei manualmente os certificados de CA raiz e intermediária no iPhone 6+
- Versão Courier = 0.73.1 (
/usr/bin/imapd --version
) - Versão do OpenSSL = 1.0.2d (
/usr/bin/openssl version
)
O que eu tentei?
- A primeira coisa que fiz foi excluir a configuração da conta inteira no aplicativo de configurações do iPhone, criar uma nova conta e inserir novamente os detalhes da configuração. Sem sucesso.
- Atualizei vários pacotes na máquina Debian, incluindo Courier e OpenSSL, para garantir que o servidor tenha os "melhores e mais recentes" recursos de segurança. Sem sucesso.
- Eu li em algum lugar que iOS 9 pode exigir TLS 1.2 no lado do servidor, então eu verifiquei que o servidor IMAP oferece, de facto essa versão do TLS aos seus clientes. Faz. Este é o comando que eu usei para verificação:
openssl s_client -connect mail.herzbube.ch:143 -starttls imap
. Se você executar isso, verá um bloco com informações sobre a sessão SSL no final, esse bloco conterá uma linha que mostra a versão do TLS usada (Protocol : TLSv1.2
). Observe que, para obter o TLS v1.2, sua versão do OpenSSL do lado do cliente também deve suportar isso. Por exemplo, o OpenSSL no meu laptop Mac OS X Yosemite (10.10.3) é muito antigo, ou seja, é apenas a versão 0.9.8.zd e parece não entender o TLS 1.2, pelo que entendiProtocol : TLSv1
. - Excluí os certificados raiz e intermediário do CAcert no iPhone e os reinstalei. Não, não ajudou.
- Desativei temporariamente o requisito do TLS no lado do servidor, e isso resolve o problema, ou seja, agora o aplicativo Mail pode se conectar, fazer login e receber e-mails do servidor. Obviamente, essa não é uma solução real, pois não quero que o tráfego para o servidor IMAP seja em texto não criptografado, mas pelo menos agora sei que o problema está de alguma forma conectado ao TLS (e / ou certificados).
- Atualizei o iPhone para o iOS 9.0.1. Sem sucesso.
openssl s_client
para verificar se o servidor tem capacidade para TLS 1.2, e o resultado desse teste foi positivo. Se não é isso que você quer dizer, você pode ser mais específico?
openssl
. Também entendi claramente que você precisa dar suporte TLSv1
ao MacOS X 10.10.3. O que não estava claro (para mim) é se iOS9
ainda está a falhar no contexto TLSv1.2
única . Quero dizer, está iOS9
fechando a compatibilidade com TLSv1
, ou seja, iOS9
implementa: "Se o servidor tiver esse recurso, eu me recuso a falar com ele!" ?.