その1ではATSでAppleに説明しなくて済む理想的な仕様をダーっと書きました。
では、実際、自分が借りているレンタルサーバーはどうなんでしょう?その1にあったSSL Server Testのサイトでチェックして見ました。まずは、このサイトでも利用しているserverqueen、もう一つは別に利用しているvalue-serverです。両方とも格安サーバーですが、どんな感じでしょうか?
(1) ServerQueen
まず、ServerQueenです。ProtocolsのTLS1.2がNOとなっていますね(笑)。この時点で、Appleへの説明なしでの対応は無理なので諦めましょう。ATSを無効にするか、TLSを下げるかですが、いずれも説明が必須です。
(2) Value-Server
次にValue-Serverです。TLS1.2はOKのようです。つぎにみるのがCipher suite(暗号化スイーツ)です。鍵交換アルゴリズムがECDHEに対応していません。このままでは使えません。ここでドメイン毎にNSExceptionRequiresForwardSecrecyをNOに設定します。
An optional Boolean value for overriding the requirement that a server support perfect forward secrecy (PFS). Use this key to describe your app’s intended connection behavior for a domain whose security attributes you have control over.
Default value is YES, which limits the accepted ciphers to those listed in ATS Configuration Basics.
Setting the value to NO results in the following ciphers, which do not support FS, also being accepted:
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA
上は、NSExceptionRequiresForwardSecrecyについての公式説明ですが、NOにすると、上の6つの暗号化スイーツが利用できる様になります。このプロパティには
Use of this key triggers App Store review and requires justification.
の文言がないので、変更してもAppleへの説明が不要です。
このように、なんとかすれば使えるレンタルサーバーもあれば、全く無理なところもあります。レンタルサーバーにアクセスするアプリを作る際は、借りる時によく調べておくのがいいと思います。