2017 年 1 月 1 日から、Apple では、すべての iOS アプリケーションで ATS (App Transport Security) の使用が必要となります。 iOS アプリケーション内の通信には、HTTPS を使用する必要があり、アプリケーションはすべて iOS 9 の新しい要件を満たす必要があります。

Alibaba Cloud CDN および SLB の HTTPS 設定は、完全に ATS に準拠しています。

Apple ATS は、HTTPS プロトコルに対して次の 4 つの要件を課しています。

CA

Entrust の OV およびより高いレベルの証明書を使用することを推奨します。

証明書のハッシュアルゴリズムおよび鍵の長さ

  • ハッシュアルゴリズム: SHA256 以上の強力なハッシュアルゴリズムを推奨します。 SHA256 は ATS に準拠しています。
  • 秘密鍵の長さ
    • CSR ファイルがシステムで生成された場合、秘密鍵は 完全に ATS 準拠の 2,048 ビットの RSA 暗号化アルゴリズムを使用します。
    • CSR ファイルを自分で作成する場合、2,048 ビット以上の RSA 暗号化アルゴリズムを使用します。

トランスポートプロトコル

トランスポートプロトコルは TLS v1.2 を満たす必要があります。 一般に、Web サーバー上で TLS v1.2 を有効にするには、次の要件を満たす必要があります。

  • OpenSSL ベースの Web サーバーの場合、OpenSSL 1.0 以降が必要です (OpenSSL 1.0.1 以降を推奨します)。
  • Java ベースの Web サーバーの場合、JDK 1.7 以降が必要です。
  • IIS7.5 および Weblogic 10.3.6 を除く他の Web サーバーの場合、必要なサーバーバージョンが使用されていると、TLS v1.2 はデフォルトで有効になっています。

TLSv1.2 の要件を満たす Web サーバー設定は、次のとおりです。

  • Apache および Nginx Web サーバーの場合、TLS v1.2 をサポートするには OpenSSL 1.0 以降が必要です。
  • Tomcat 7 以降の Web サーバーの場合、TLS v1.2 をサポートするには JDK 7.0 以降が必要です。
  • IIS 7.5 Web サーバーの場合、TLS v1.2 はデフォルトで無効になっています。 有効にするには、レジストリを変更する必要があります。

    ats.reg レジストリスクリプトをダウンロードおよびインポートし、 TLS v1.2 を有効にするため、サーバーを再起動 (またはログオフ) します。

  • IBM Domino Server 9.0.1 FP3 Web サーバーの場合、TLS v1.2 はサポートされています。 ATS に準拠するには、IBM Domino Server 9.0.1 FP5 を使用することを推奨します。 詳細については、以下をご参照ください。
  • IBM HTTP Server 8.0 以降の場合、TLS v1.2 はサポートされています。 ATS に準拠するには、IBM HTTP Server 8.5 を使用することを推奨します。
  • Weblogic 10.3.6 以降の Web サーバーの場合、TLS v1.2 をサポートするには Java 7.0 以上が必要です。
    Weblogic 10.3.6 には、 SHA256 互換性のバグが多数存在します。 したがって、Weblogic 12 以降の使用を推奨します。 また、フロントエンドで Apache または Nginx を、Weblogic 10.3.6 用 HTTPS プロキシ、または SSL フロントエンドロードとして設定します。
  • Websphere 7.0.0.23 以降、Websphere 8.0.0.3 以降、および Websphere 8.5.0.0 以降のバージョンについては、 TLS v1.2 はサポートされています。 他のバージョンの Websphere サーバーを設定して TLS v1.2 をサポートする方法については、「Websphere アプリケーションサーバー SSL プロトコルを TLSv1.2 に設定」をご参照ください。

署名アルゴリズム

署名アルゴリズムは、次の要件を満たす必要があります。

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

設定サンプル

次のサンプルで、さまざまな Web サーバー用 ATS プロトコルおよび暗号スイートを設定する方法を説明します。
サンプルには、ATS プロトコルに関連する属性のみがリストアップされています。 以下の設定を実際の環境にコピーしないでください。

Nginx 設定サンプル

Nginx 設定ファイルでは、ssl_ciphers および ssl_protocols 属性が ATS に関連します。

server {
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:! NULL:! aNULL:! MD5:! ADH:! RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}

Tomcat 設定サンプル

Tomcat 設定ファイルでは、SSLProtocol および SSLCipherSuite 属性が ATS に関連します。

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
scheme="https" secure="true"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:! NULL:! aNULL:! MD5:! ADH:! RC4" />

IIS Web サーバーを設定する方法については、「IIS 7.5 の TLS 1.2 を 256 ビットの 暗号強度で有効化」をご参照ください。 または、IIS Crypto の GUI 設定プラグインを使用して、設定を行います。

ATS テストツール

ATS テストは、Mac OS に付属の ATS テストツールを用いて実行します。 次のコマンドを実行してドメインの ATS テストを実行します。nscurl --ats-diagnostics --verbose website URL