iOS9から追加されたATS(App Transport Security)
「HTTPS (TLSv1.2以上)以外は、通信制限がはいりますよ〜」
なかなか、やっかいですが
世の中の流れ?
長いものには巻かれろ?
しかしながら、色々事情があり対応が・・・。
私も含めて、そんな人たちの為に、ATSの無効の仕方です。
info.plistに記述します。
動作確認環境
Xcode7beta6
iOS9 beta5
ATSの動作を完全に無効にする
appleは非推奨です。
<dict> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> </dict>
ドメイン指定でATSの動作を無効にする
appleの考えはATSを無効にする事は推奨していませんが、暫定対応として推奨してるようです。
HTTP
HTTPドメインのATS制限を無効にします。
NSExceptionAllowsInsecureHTTPLoadsらしいのですが、iOS9beta5では動作しないのでNSTemporaryExceptionAllowsInsecureHTTPLoadsをしようしています。
<dict> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <false/> <key>NSExceptionDomains</key> <dict> <key>xxxxx.xx.jp</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> </dict> </dict>
HTTPS
HTTPSのドメインのセキュリティレベルを下げてATS制限を無効にします。
例は、TLSv1.1以上であればアクセスが可能になります。
<dict> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <false/> <key>NSExceptionDomains</key> <dict> <key>xxx.xx.jp</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> </dict> </dict> </dict>
まとめ
暫定処置と考えておいたほうがいいかもしれません。
サーバー担当を説得させ、セキュリティーレベルをあげてもらうようにしましょう。
コメント