comix

ジャンプみたいなブログになりたい。

ATS対応(CentOS+Apache編)

Qiitaにまとめるほどでもないので、ブログにでも。

 

iOS9から導入されたATS機能をONにしたアプリで、サーバー側のWeb APIを実行するとエラーになってしまった。(具体的にはSSLハンドシェイクのタイミングでNG)

 

サーバー側の環境は、よくあるLAMP環境で、CentOSは6.4系、Apacheは2.2.15-28というバージョンだった。ApacheSSL周りの設定はこんな感じ(分かりやすいようにちょっと改変してる)。

 

SSLProtocol ALL -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ALL

 

ATSの仕様をみると、TLSv1.2が有効となっていて、SSLCipherSuiteはECDHが有効となっていれば問題なさそうなので、Apacheの設定は大丈夫そう。

 

でも、何故かエラーが解消せず困っていたのですが、結局mod_sslのバージョンが古く、このバージョンだとECDHに対応していなかった。

 

ということで、mod_ssl(とhttpd)のバージョンをhttpd-2.2.15-47にしたところアッサリ解決。

(2.2.15-31以降であれば大丈夫っぽい。あと、これはCentの独自パッケージなので、ソースからコンパイルするときは2.2.3-x系からがよさそう。)

 

気付いてしまえば何てことないのですが、まだATSの情報が少なく、苦戦しました。。

 

【参考URL】

App Transport Security Technote: App Transport Security Technote

mod_ssl-2.2.15-47.el6.centos.x86_64 RPM