banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[iOS] iOS9.0 システムの強制的なHTTPS使用を無効化

iOS9.0 以降、セキュリティ上の理由から、Foundation.framework の HTTP リクエストプロトコルが SSL/TLS に変更されました。つまり、プログラムから発行されるすべての HTTP リクエストはデフォルトで HTTPS のコンテンツをリクエストし、HTTPS で 404 エラーが発生した場合は HTTP のコンテンツをリクエストしません。もしもあなたのアプリが元々HTTPS を使用している場合、基本的に問題はありません。しかし、HTTP を使用している場合は、次のようにする必要があります:1. サーバーの設定を変更して HTTPS アクセスをサポートするようにすること、2. アプリの info.plist の設定を変更して、アプリが通常の HTTP プロトコルのウェブサイトにアクセスできるようにすること。そうしないと、デバッグ中に次のようなログが表示されます:

App Transport Security has blocked a cleartext HTTP (http://) resource
load since it is insecure. Temporary exceptions can be configured via
your app's Info.plist file.

info.plist を変更する際、APPLE は次のような変更方法を提供しています。以下の内容を info.plist に追加するだけです。

NSAppTransportSecurity
NSExceptionDomains
lidaren.com
NSIncludesSubdomains
NSTemporaryExceptionAllowsInsecureHTTPLoads
NSTemporaryExceptionMinimumTLSVersion
TLSv1.1

もしもあなたのアプリがブラウザ機能を持っている場合、以下のように変更すると、完全に HTTP アクセス機能を解放することができます。

NSAppTransportSecurity

NSAllowsArbitraryLoads

最後に、元の記事のリンクを添付します。https://stackoverflow.com/questions/30720813/cfnetwork-sslhandshake-failed-ios-9

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。