Короткая версия: Кто-нибудь знает, должны ли клиентские сертификаты X.509 работать на iPad для почты IMAP? Я трачу свое время, пытаясь получить функцию, которая не работает, чтобы работать? Если встроенное почтовое приложение не поддерживает IMAP с клиентскими сертификатами X.509 (т. Е. Они работают только с учетными записями Microsoft Exchange ActiveSync), существуют ли какие-либо сторонние приложения, которые это делают?
Интересует только iOS 5.1 или новее; 5.1 - это версия, с которой я тестировал.
Я администратор сети, которая требуется политикой для использования клиентских сертификатов X.509 для защиты всех внешних связей, включая наш почтовый сервер IMAP (Cyrus IMAPd) и SMTP-сервер (postfix). Ни один из них не примет соединение без предоставления клиентом действительного сертификата клиента X.509. Отключение требования сертификата клиента не вариант для меня, и мы не можем туннелировать трафик через VPN по аналогичным причинам.
Теперь у нас есть пользователи iPad, которые хотят подключиться к нашей сети, и для нас это проблема iPad.
Для пользователей на настольных компьютерах мы обычно устанавливаем Thunderbird, так как он имеет надежный IMAP с отличной поддержкой сертификатов клиентов; он «просто работает» и одинаков для поддержки на любой платформе. Это не вариант для iPad.
К сожалению, встроенное почтовое приложение iPad не справляется с клиентскими сертификатами для IMAP. Я могу установить корневой сертификат нашей организации и клиентский сертификат пользователя с помощью утилиты конфигурации iPhone. Оба отображаются как «проверенные» в «Настройки-> Общие-> Профили». Затем iPad принимает наш сервер как доверенный и пропускает любые предупреждения о том, что идентификация сервера не проверяется.
Почте по-прежнему не удается отправить клиентский сертификат, когда он требуется, поэтому сервер прекращает рукопожатие. Он не предлагает пользователю выбрать один и не отправляет автоматически установленный клиентский сертификат для пользователя, который соответствует сертификату CA, представленному сервером.
Изучение потока трафика между клиентом и сервером показывает, что согласование TLS завершается неудачно, когда iPad отвечает пустым набором клиентских сертификатов, когда сервер запрашивает клиентские сертификаты. См. ниже.
При подключении к внутренней сети через зашифрованный WiFi, где для получения почты не требуется сертификат клиента, устройство подключается и загружает почту просто отлично. Внешний доступ (общедоступный WiFi или через 3G) не выполняется, независимо от того, использую ли я порт IMAP 993 с установленным флажком «Использовать SSL», или порт 143 IMAP + TLS с установленным флажком «Использовать SSL» или без него. Помимо очевидного отсутствия поддержки согласования сертификата клиента для IMAP, это идеально.
Ссылки на поддержку клиентских сертификатов в документации по Apple «Поддержка предприятия» появляются только там, где обсуждается Microsoft Exchange ActiveSync и где обсуждается поддержка Cisco VPN.
На дискуссионных форумах Apple есть несколько вопросов, но нет недавних и нет полезных ответов. Я бы сослался на них, но форумы Apple в данный момент «не работают».
В качестве обходного пути я, вероятно, могу настроить заблокированную VPN, используя поддержку автоматического VPN-подключения iPad, чтобы общаться с IPSec VPN с аутентификацией клиента, который может общаться только с серверами IMAP и SMTP на соответствующих портах плюс DNS, и ничего больше. Это был бы довольно отвратительный хак, чтобы совершить его.
КСТАТИ, клиент <-> сервер разговор:
- C -> S TLSv1 Клиент Привет
- S -> C TLSv1 Сервер Здравствуйте
- S -> C Сертификат TLSv1, Запрос сертификата, Сервер Hello Done (Отправляет сертификат сервера, подписывает корневой сертификат, DN принятого клиента, подписавшего сертификат, который совпадает с корнем, подписавшим сертификат сервера)
- C -> Сертификат TLSv1 (пустой набор сертификатов, включая 0 сертификатов)
- S -> C TLSv1 Ошибка рукопожатия
Другими словами, сервер говорит: «Это я, я ожидаю, что вы предоставите сертификат, подписанный уполномоченным органом для подтверждения того, кто вы есть», а клиент отвечает: «Хм, мои бумаги находятся в этом пустом конверте. Послушайте, казуар! "
На клиенте установлен корневой сертификат и установлен клиентский сертификат с DN подписавшего, требуемым сервером.