2017-06-13 7 views
1

Apple Docsと多数のApple Developerフォーラムの記事を読んだ後も、ローカルネットワークへのセキュア(TLS/HTTPS)コールを行うためのATS免除が必要かどうかは不明ですマシン(非修飾ドメイン例:https://MyServer:9000)。次this docの状態の一部:リモートとローカル接続のApp交通 セキュリティ(ATS)のためのATSのApp Transport Security(ATS)とローカルのセキュリティ保護された接続

可用性は、パブリックホスト名への接続にのみ適用されます。 システムはへの接続にATS保護を提供していません:

  • インターネット・プロトコル(IP)は
  • 非修飾ホスト名.localのトップレベルドメイン(TLD)
を採用
  • ローカルホストに取り組みます

    修飾されていないホスト名または.localドメインに接続するには、 という値をNSAllowsLocalNetworkingキーに設定する必要があります。

    注:ATSがローカルホストに接続するための強制力のないですが、アップル は強くローカルIPアドレスを検証 に自己署名証明書を使用してに沿って、任意のローカル 接続のためのトランスポート層セキュリティ(TLS)を使用することをお勧めします

  • だから私もすでにATS準拠にするためにNSAllowsLocalNetworkingを追加する必要があります(転送秘密、TLS 1.2など)は、非修飾ホスト名(プライベートローカルサーバ)へのの接続を確保?または、un市内通話でのみNSAllowsLocalNetworkingが必要ですか?

    答えて

    0

    NSAllowsLocalNetworkingキーは、ローカルネットワークコールのATS例外を要求するために使用されます。ローカルサーバーがATS準拠の場合は、例外を追加する必要はありません。確認するだけでも簡単です。 Info.plistで例外なくiOS 10デバイスでアプリを実行するだけです。デバイスで接続が成功すると、問題の原因となっているATS違反がないことがわかります。それがうまくいかない場合は、ATSの要件の1つに違反している可能性があります(ただし、ATS準拠の高いレベルの要件を確認したようです)。

    エラーが発生した場合は、次のURLでATS準拠のURLをテストできます。nscurl --ats-diagnostics <url>コマンドをMacで使用します。 ATSについての詳細は、this postの上記のnscurlコマンドの結果の使用方法や解釈方法を参照してください。

    メモとして、NSAllowsLocalNetworking例外がiOS 10で追加されたため、ビルドに含めてiOS 9デバイスで実行すると変更されません。あなたがそれを必要とし、iOS 9をサポートする必要がある場合は、NSAllowsLocalNetworkingNSAllowsArbitraryLoadsの両方をInfo.plistに追加することをお勧めします。 iOS 10ではローカル接続でのみATSが無効になりますが、(NSAllowsLocalNetworkingのエントリをサポートしない)iOS9デバイスでは、ATSは全面的に無効になります。

    +0

    ありがとうございました。テストを通じて検証し、ローカルコールのフラグが必要でないことが判明した場合は、このスレッドに返答します – stonedauwg

    関連する問題