kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

iOS9のATSのエラーについて

developer.apple.com

WEBでもAPIで利用しているひとでもiOS9のATSには悩まされているのではないでしょうか。

携わっているアプリでもATSで動作しなくなった感じなので、ちょっとずつ解消するために作業をしています。

HTTPSにする

まずHTTPで通信していた部分をHTTPSにしました。

WEB表示だけであればこれだけで解決する場合はあります。画像とかリンクもHTTPSにする必要はありましたが。

しかし、アプリの中でのWEBでajax呼び出し部分もHTTP通信で行っていた部分があり、やっぱりダメになっているっぽいです。

REST構造だから、よくある仕組みだと思うんだが、ダメですかー。

エラーとしては

xcode

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

ブラウザ側のjavascript

SSL handshake failed

ともう一つエラーがでていました。(ちょっと忘れました。。。)

TLS1.2 以上にする

SSL handshake が出ていたので、どうやらプロトコル周りだろうと予想をして調査

Transport Layer Security - Wikipedia

どうやらiOS9になるとSSL3.0とかはダメになるらしい。AWS通信プロトコルの指定があるみたいで、TLS1.2がはいっていなかった。

たぶん今後iOS9でWEBをみるさいにもこのプロトコルは許容する必要があるだろうから指定にいれておこう。

ここまでやってHandshakeは消えた。

よし、行ける!!と思ったが、もう一つのエラーが実は解消されていない。

これがまだ原因がつかめていない状態で試行錯誤中。

許可ドメインを指定

あまりやりたくなかったが、ドメインでの許可を入れるしかないかもしれない。と思っている。

ちょっと時間も無くなってきたので、なんとか動く形で出してみようと思います。

いま出ているアプリは大丈夫みたい

ここで心配になってたのは、いまのアプリってiOS9で動くの?という部分ですが、iOS9にしてストアからアプリをインストールしてみたが、問題なく動いているみたいです。

新しいバージョンXcodeでビルドしたら適用されるみたいな印象です。

確証はありませんが、いけるものと思ってそのままにする選択もありかもとか思っていました。

が、ほかの機能をリリースする必要があるなんてねー。。。

この時期にやってしまった感満載です。

まぁ、なんとかなるでしょう。今週のappleの発表が楽しみです。

暗号解読〈上〉 (新潮文庫)

暗号解読〈上〉 (新潮文庫)