2

いくつかのレガシーおよび内部的な理由により、サーバーの証明書 (およびチェーンからの証明書も) を取得し、そのフィンガープリントを読み取る必要があります。

実装する必要があるのは AFNetworking または NSURLConnection だけなので、これは簡単に実装できることを理解しています

- (void) 接続: (NSURLConnection *) 接続 willSendRequestForAuthenticationChallenge: (NSURLAuthenticationChallenge *) チャレンジ

しかし、基本的に CFNetworking の単なるラッパーである ASIHTTPRequest を使用するときに、同じことを行うことは可能でしょうか?

繰り返しますが、クライアント証明書がありません。私の目標は、サーバーから証明書を取得して、発行者のフィンガープリントを読み取ることです。

クライアントでサーバー証明書のフィンガープリントを検証し、それが期待したものと一致する場合はリクエストを続行するか、そうでない場合はリクエストをキャンセルしてエラーをスローする必要があります。これは ASIHTTPRequest を使用して可能ですか?

4

1 に答える 1

3

CFNetworking (ASIHTTPRequest が使用しているもの) を使用してこれを行う方法がないことを確認しました。https://devforums.apple.com/thread/87346 を参照してください。ios Developers アカウントを持っていない人 (なぜこれを読んでいるのかわからない) には、「いいえ。これについて深く考えた後、私はそれが可能だとは思いません。これを行う NSURLConnection は、プライベート フックを使用します。 CFHTTPStream に変換すると、それを使用できなくなります。」

ところで、NSURLConnection を使用してネットワーク層を書き直し、この問題を解決しました

于 2013-12-17T19:52:28.633 に答える