6

サードパーティのアプリケーションは、X509証明書を追加するためにiPhoneのキーチェーンにアクセスできますか?はいの場合、どのようにそれを行うことができますか?
そうでない場合は、キーチェーンから証明書を読み取るためだけにキーチェーンにアクセスできますか?

基本的に、必要なものは次のとおりです
。1)アプリケーションは、信頼できるCAによって署名されていない証明書を使用するhttpsサイトにアクセスする必要があります。https経由で接続しようとすると、例外が発生します。
2)プログラムでルートの証明書をキーチェーンに追加できれば素晴らしいと思います。ユーザーがSafari経由でサイトにアクセスし、その証明書を受け入れてから、私のアプリケーションを使用してサイトにアクセスできれば十分です。

これまで、httpsを超えるために次のインターフェースを使用してきました。

@interface NSURLRequest (DummyInterface)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host;
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host;
@end

しかし、これは私が望んでいることではありません。

助言がありますか?

4

1 に答える 1

3

この Apple ドキュメントは、自己署名証明書 (または自己署名認証局) をキーチェーンに追加し、信頼できるようにするのに十分な内容を文書化する必要があります。でも、私はそれをテストしませんでした。ソース

この質問のトップの回答も参照してください。ただし、証明書の有効性を実際に検証しているようには見えません。Cocoanetics は、自己署名証明書で NSURLConnection を使用する方法も文書化しており、同様に有効性を検証していないようです。

したがって、ほぼ確実に Apple の指示に従いたいと思うでしょう。「*.P12 ファイルから ID を抽出して評価する」セクションには、パスフレーズで保護されたものであっても、証明書をインポートする方法の完全な例が含まれているようです。

これを「AdvancedURLConnections」のサンプル コードとServerTrustChallengeHandlerクラスと組み合わせると、準備完了です。


これは、Vanja Komadinovićによるより完全な例です

于 2012-10-15T10:28:06.110 に答える