短いバージョン:X.509クライアント証明書がiPadでIMAPメール用に機能することになっていることを知っていますか?機能しない機能を取得しようとして時間を無駄にしていますか?組み込みのメールアプリがX.509クライアント証明書を使用したIMAPをサポートしていない場合(つまり、Microsoft Exchange ActiveSyncアカウントでのみ機能します)、サポートしているサードパーティアプリはありますか?
iOS 5.1以降のみが対象です。5.1は私がテストしてきたバージョンです。
私は、X.509クライアント証明書を使用して、IMAPメールサーバー(Cyrus IMAPd)やSMTPサーバー(後置)を含むすべての外部通信を保護するためにポリシーで必要とされるネットワークの管理者です。クライアントが有効なX.509クライアント証明書を提示しないと、どちらも接続を受け入れません。クライアント証明書の要件を無効にすることは私にとって選択肢ではなく、同様の理由でVPN経由でトラフィックをトンネリングすることは許可されていません。
ネットワークに接続したいiPadユーザーがいますが、iPadが少し問題になっています。
デスクトップマシンのユーザーには、通常、Thunderbirdをインストールします。これは、優れたクライアント証明書サポートを備えた堅牢なIMAPを備えているためです。それは「機能する」だけで、すべてのプラットフォームでサポートするのと同じです。これはiPadのオプションではありません。
残念ながら、iPadの組み込みメールアプリはIMAPのクライアント証明書に対応していないようです。iPhone構成ユーティリティを使用して、組織のルート証明書とユーザーのクライアント証明書をインストールできます。どちらも、[設定]-> [一般]-> [プロファイル]に「検証済み」と表示されます。iPadはその後、サーバーを信頼できるものとして受け入れ、サーバーのIDが検証されないという警告を省略します。
サーバーはハンドシェイクを終了するので、メールはクライアント証明書が要求されてもクライアント証明書の送信に失敗します。ユーザーにいずれか1つを選択するよう要求することも、サーバーが提示したCA証明書と一致するユーザー用にインストールしたクライアント証明書を自動的に送信することもありません。
クライアントとサーバー間のトラフィックフローを調べると、サーバーがクライアント証明書を要求したときにiPadが空のクライアント証明書セットで応答すると、TLSネゴシエーションが失敗することがわかります。下記参照。
メールを取得するためにクライアント証明書が必要ない暗号化されたWiFiを介して内部ネットワークに接続すると、デバイスはメールを正常に接続してダウンロードします。「SSLを使用する」チェックボックスをオンにしてIMAPポート993を使用するか、「SSLを使用する」チェックボックスをオンまたはオフにしてIMAP + TLSポート143を使用する場合、外部アクセス(パブリックWiFiまたは3G経由)が失敗します。IMAPのクライアント証明書ネゴシエーションサポートが明らかに不足していることを除けば、完璧です。
Appleの「エンタープライズサポート」のドキュメントにあるクライアント証明書サポートへの参照は、Microsoft Exchange ActiveSyncが説明されている場所、およびCisco VPNサポートが説明されている場所にのみ表示されます。
Appleのディスカッションフォーラムにはいくつかの質問がありますが、最近の質問や有用な回答はありません。私はそれらにリンクしたいと思いますが、Appleのフォーラムは現時点では「メンテナンス中」です。
回避策として、iPadの自動VPN接続サポートを使用してロックダウンVPNをセットアップし、適切なポートとDNS以外のIMAPおよびSMTPサーバーのみと通信できるクライアント証明書認証IPSec VPNと通信できるようにします。しかし、実行しなければならないのはかなり恐ろしいハックでしょう。
ところで、クライアント<->サーバーの会話は:
- C-> S TLSv1クライアントHello
- S-> C TLSv1サーバーHello
- S-> C TLSv1証明書、証明書要求、サーバーHello Done(サーバー証明書を送信、ルート証明書に署名、サーバー証明書に署名したルートと同じ受け入れられたクライアント証明書署名者のDN)
- C-> S TLSv1証明書(証明書の空のセット、証明書が含まれていない)
- S-> C TLSv1ハンドシェイクの失敗
言い換えると、サーバーは「これは私です、あなたが誰であるかを証明するために当局によって署名された証明書を提供することを期待します」とクライアントは答えます。 」
クライアントにはルート証明書がインストールされており、サーバーから要求された署名者DNを持つクライアント証明書がインストールされています。