LoginSignup
1
4

More than 5 years have passed since last update.

iPhoneアプリでATS(App Transport Security)の制限に引っかかって解決するまでのメモ

Posted at

不具合が発生したversion

ios 10.1系

不具合の現象

  • iphoneのネイティブアプリからHTTPSのURLを叩き外部サイトを参照とした時に下記のようなキャプチャのエラーとなってしまった
  • 少し前はなんとも無くURLを開けていたのに😨

キャプチャ

60d77c16-c217-11e6-82df-b055dc9922f3.jpg

デバッグ

  • まずはこのエラー文言でググったAn SSL error has occurredとかで
  • そうするとApple社のATSという情報が色々とヒットしてきた
  • 実機でiPhoneアプリから色々とURLを叩いて検証した
  • OpenSSLが入ってネットにつながってるサーバ上でopenssls_clientを使って上記のエラーにならないURL、エラーになるURLを叩いてみて差分を見てみた
  • SSL/TLSのバージョンが怪しいかもって勘づいた
  • そうだとするとATS関連かもとさらに思い始めた

原因

なぜ今頃に不具合が出てきたか

  • 2016年末にApp Storeに公開するアプリにはATSが必須になってるっぽい。だから今ごろこの問題が出てきた

解決にむけて

まず、ATSの主な要件は?

  • TLSのバージョンが1.2 以上
  • SHA256 以上のフィンガープリント
  • 2048 ビット以上のRSAキー、もしくは 256 ビット以上の Elliptic-Curve
  • 暗号スイート (暗号アルゴリズムの組み合わせ) 多すぎて書けない

参考)http://sehermitage.web.fc2.com/crypto/ssl_suite.html

開こうとしたURLのサーバのSSLまわりの設定を上記の要件を満たす事が必要

で開こうとしたURLは管理下のサーバでよく調べて見たらAWSのELBを使ってた

解決へ

ELBにはこのあたりの設定が簡単にできる
http://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/classic/elb-security-policy-table.html

AWSは概ね最新のSSLのセキュリティポリシーを適用を推奨しているが、対応するブラウザするブラウザとかちょっと確認しておいたほうが良いかなと思った

GAとかのログからユーザが主に使ってるブラウザと照らし合わせるとかして

まとめ

  • AWSのELBは立ち上げたときにSSLのセキュリティポリシーを決めると思うが、その後しばらく運用していくと設定を見直す事を忘れてしまう...何かアラートとかくれるとありがたい😅
  • これに限らず設定が古くなってる可能性があるかも?みたいなチェックする仕組み必要かもと思った
  • まぁでも早く解決できた良かった😀
1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4