1

私が取り組んでいるアプリケーションは、https 経由で Web サービスに接続する必要があります。証明書は信頼され、有効です。

私は NSURLConnection を使用しましたが、これは以前のプロジェクトで、http 経由で SOAP を使用するためのものです。

誰でも上記の 2 つのシナリオの違いを指摘できますか。また、https 経由で接続するときに正確に何が起こるか、デバイスに証明書が自動的に保存されるか、ssl ハンドシェイクがどのように発生するかを理解する必要があります。

この方向のポインタは本当に役に立ちます。

よろしく、イシャン

4

2 に答える 2

1

いくつかの説明が必要です。証明書は、通知で使用するためにAppleによって署名されていますか、それともSSLルート認証局(VeriSignなど)によって署名されていますか?

Apple署名付き証明書は、Apple PushNotificationServiceなどのWebServerからAppleServerへの通信でのみ使用されます。これらは、iOSデバイスからWebサーバーへの接続を目的としたものではありません。

SSLルート認証局によって署名されたSSL証明書は正常に機能するはずです。


HTTP over SSL/TLS入門書を探していると思います。だから、ここに行きます。

HTTPは暗号化されていないチャネルです。要求と応答はプレーンテキストのデータストリームにあります。HTTPSは暗号化されたチャネルです。要求と応答は、共有マスターキーを使用して暗号化されたデータストリームにあります。SSL / TLSの魔法は、この暗号化されたチャネルがどのように作成されるかです。

まず、クライアントとサーバーが(クリアチャネルで)お互いに挨拶します。次に、クライアントはサーバーの公開証明書を(クリアチャネルで)ダウンロードします。

この時点で、クライアントにはやるべきことがいくつかあります。証明書を検証する必要があります。証明書を理解していること、日付範囲が有効であること、証明書が信頼できる認証局によって署名されていること、および証明書が取り消されていないことを知る必要があります。

これで、クライアントはサーバーを信頼できることを認識します。

次に、サーバーの公開鍵(サーバーの公開証明書に含まれている)で暗号化されたいくつかの短いメッセージを送信します。これらのメッセージは、サーバーの秘密鍵(サーバーのみが知っている)によってのみ復号化できます。これらのメッセージにより、クライアントとサーバーはマスターキーをネゴシエートできます。

最後に、クライアントとサーバーは、新しく作成された暗号化チャネルを使用して、通常のHTTP要求と応答を開始します。

これがあなたが探しているものであることを願っています。詳細な説明については、http ://www.moserware.com/2009/06/first-few-milliseconds-of-https.htmlを参照してください。

于 2012-04-24T19:33:44.287 に答える
1

ルートが Apple によって信頼されている認証局のチェーンによって証明書が発行された場合、何もする必要はありません。iOS デバイスは、証明書が有効である限り (つまり、有効期限が切れていない、取り消されていないなど)、証明書を受け入れます。

CA チェーンのルートがApple によって信頼されていない場合は、ルートの証明書を電話にダウンロードする必要があります。これは、iPhone 構成ユーティリティを介して行うことができます (と思います)。エンタープライズ プロビジョニング シナリオも、間違いなくこれをサポートしています。

于 2012-04-24T17:57:48.057 に答える