[解決済み】CFNetwork SSLHandshakeが失敗する iOS 9
2022-04-13 10:04:55
質問
iOS 9 beta 1でこの問題が発生した人はいますか?
ウェブサービスに接続するために標準的なNSURLConnectionを使用していますが、ウェブサービスに電話をかけるとすぐに以下のエラーが発生します。 これは現在iOS 8.3で動作しています。
ベータ版のバグでしょうか?iOS 9の開発の初期段階であることは承知しています。
以下はエラーの全容です。
CFNetwork SSLHandshakeに失敗しました (-9824) NSURLSession/NSURLConnection の HTTP ロードに失敗しました (kCFStreamErrorDomainSSL, -9824)
NSURLRequest * urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://mywebserviceurl"]];
NSURLResponse * response = nil;
NSError * error = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];
解決方法は?
iOS 9 と OSX 10.11 では、アプリの Info.plist ファイルで例外ドメインを指定しない限り、データを要求する予定のすべてのホストに対して TLSv1.2 SSL を要求します。
Info.plistの設定の構文は以下のようになります。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourserver.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow insecure HTTP requests-->
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
アプリケーション(サードパーティのウェブブラウザなど)が任意のホストに接続する必要がある場合、このように設定することができます。
<key>NSAppTransportSecurity</key>
<dict>
<!--Connect to anything (this is probably BAD)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
もし、この作業を行わなければならないのであれば、TLSv1.2とSSLを使うようにサーバーを更新するのが一番でしょう。これは一時的な回避策と考えるべきでしょう。
今日現在、プレリリース版のドキュメントでは、これらの設定オプションについて具体的な言及は一切ありません。言及されるようになったら、関連するドキュメントにリンクするよう、この回答を更新します。
関連
-
[解決済み] ペン先を読み込んだが、「表示」コンセントが設定されていない
-
[解決済み] 「シミュレータで実行すると、「インストールされているプロビジョニングプロファイルが、インストールされているiOS署名アイデンティティと一致しません。
-
[解決済み] Xcodeで "No such module "というエラーが出るが、フレームワークはある
-
[解決済み] MacOSとXcodeをアップデートすると、Xcode 8.1の「No matching provisioning profiles found」が表示される。
-
[解決済み] UTF-8でエンコードされたNSDataをNSStringに変換します。
-
[解決済み] Swiftを使って音を鳴らすには?
-
[解決済み] Stringをformatで作成するには?
-
[解決済み] 条件付きバインディング:letエラーの場合 - 条件付きバインディングのイニシャライザーはOptional型でなければならない
-
[解決済み] BluetoothのロゴはiPhoneのキャラクターとして利用できますか?
-
[解決済み] あなたのリクエストはエラーを発生させました。[newNullResponse]?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Xcodeエラー:SDK 'iOS 10.0'の製品タイプ 'Application'では、コード署名が必要です。
-
[解決済み] 警告: 'characters' は非推奨です。String または Substring を直接使用してください。
-
[解決済み] Info.plist ユーティリティのエラーです。"そのようなファイルがないため、Info.plistを開くことができませんでした"
-
[解決済み] UITabBar アイコンが正しく表示されない
-
[解決済み] MacOSとXcodeをアップデートすると、Xcode 8.1の「No matching provisioning profiles found」が表示される。
-
[解決済み] ナビゲーションアイテムのタイトルカラーを変更する方法
-
[解決済み] UIViewAlertForUnsatisfiableConstraintsでトラップする方法は?
-
[解決済み】iOS 9でApp Transport Securityを有効にしてHTTP URLを読み込むにはどうすればいいですか?重複
-
[解決済み] iOS 9でNSURLSession/NSURLConnectionのHTTPロードに失敗する。
-
[解決済み] info.plistファイルにNSAppTransportSecurityを追加するにはどうしたらいいですか?