Versi singkat: Apakah ada yang tahu jika sertifikat klien X.509 seharusnya berfungsi di iPad untuk email IMAP? Apakah saya membuang-buang waktu untuk mencoba fitur yang tidak berfungsi? Jika aplikasi surat bawaan tidak mendukung IMAP dengan sertifikat klien X.509 (yaitu: mereka hanya bekerja dengan akun Microsoft Exchange ActiveSync), apakah ada aplikasi pihak ketiga yang melakukannya?
Hanya iOS 5.1 atau yang lebih baru yang menarik; 5.1 adalah versi yang telah saya uji.
Saya adalah admin jaringan yang diharuskan oleh kebijakan untuk menggunakan sertifikat klien X.509 untuk melindungi semua komunikasi eksternal, termasuk server surat IMAP kami (Cyrus IMAPd) dan server SMTP (postfix). Tidak akan menerima koneksi tanpa klien menyajikan sertifikat klien X.509 yang valid. Menonaktifkan persyaratan sertifikat klien bukan pilihan bagi saya, dan kami tidak diizinkan untuk lalu lintas terowongan melalui VPN karena alasan yang sama.
Kami sekarang memiliki pengguna iPad yang ingin terhubung ke jaringan kami, dan menemukan iPad menjadi sedikit masalah.
Untuk pengguna pada mesin desktop kami biasanya menginstal Thunderbird, karena memiliki IMAP yang kokoh dengan dukungan sertifikat klien yang sangat baik; itu "hanya bekerja" dan sama untuk mendukung di setiap platform. Ini bukan opsi untuk iPad.
Sayangnya aplikasi Mail bawaan iPad sepertinya tidak mengatasi sertifikat klien untuk IMAP. Saya dapat menginstal sertifikat root org kami dan sertifikat klien pengguna menggunakan iPhone Configuration Utility. Keduanya ditampilkan sebagai "diverifikasi" di Pengaturan-> Umum-> Profil. IPad kemudian menerima server kami sebagai tepercaya dan menghilangkan peringatan tentang identitas server yang tidak diverifikasi.
Mail masih gagal mengirim sertifikat klien ketika diminta, sehingga server mengakhiri jabat tangan. Itu tidak meminta pengguna untuk memilih satu, juga tidak secara otomatis mengirim sertifikat klien yang telah diinstal untuk pengguna yang cocok dengan sertifikat CA yang disajikan oleh server.
Pemeriksaan aliran lalu lintas antara klien dan server menunjukkan bahwa negosiasi TLS gagal ketika iPad merespons dengan set sertifikat klien yang kosong ketika sertifikat klien diminta oleh server. Lihat di bawah.
Ketika terhubung ke jaringan internal melalui WiFi terenkripsi, di mana tidak ada sertifikat klien yang diperlukan untuk mendapatkan email, perangkat terhubung dan mengunduh email dengan baik. Akses eksternal (WiFi publik atau melalui 3G) gagal, apakah saya menggunakan port IMAPs 993 dengan "Use SSL" dicentang atau port IMAP + TLS 143 dengan atau tanpa "Use SSL" dicentang. Selain kurangnya dukungan negosiasi sertifikat klien untuk IMAP, itu sempurna.
Referensi untuk dukungan sertifikat klien dalam dokumentasi untuk "dukungan Perusahaan" Apple hanya muncul di mana Microsoft Exchange ActiveSync dibahas, dan di mana dukungan Cisco VPN dibahas.
Ada beberapa pertanyaan di forum diskusi Apple, tetapi tidak ada yang baru dan tidak ada jawaban yang berguna. Saya akan tautkan ke mereka, tetapi forum Apple "sedang dalam perbaikan" saat ini.
Sebagai solusinya, saya mungkin dapat mengatur VPN yang terkunci menggunakan dukungan koneksi VPN otomatis iPad untuk berbicara dengan IPSec VPN autentikasi klien yang hanya dapat berbicara dengan server IMAP dan SMTP pada port yang sesuai plus DNS, tidak ada yang lain. Ini akan menjadi peretasan yang cukup mengerikan jika harus dilakukan.
BTW, percakapan server <-> klien adalah:
- C -> S TLSv1 Client Halo
- S -> C TLSv1 Server Halo
- S -> C TLSv1 Sertifikat, Permintaan Sertifikat, Server Hello Done (Mengirim sertifikat server, menandatangani sertifikat root, DN dari penandatangan sertifikat klien yang diterima yang kebetulan sama dengan root yang menandatangani sertifikat server)
- C -> S TLSv1 Certificate (set sertifikat kosong, tidak termasuk sertifikat)
- S -> C TLSv1 Kegagalan jabat tangan
Dengan kata lain, server mengatakan "ini saya, saya berharap Anda memberikan sertifikat yang ditandatangani oleh otoritas untuk membuktikan siapa Anda" dan klien menjawab dengan "Um, kertas saya ada di dalam amplop kosong di sini. Lihat, kasuari! "
Klien memiliki sertifikat root yang diinstal, dan memiliki sertifikat klien yang diinstal yang memiliki DN penandatangan yang diminta oleh server.