Azure Application Gateway を使用すると、TLS/SSL 証明書の管理を一元化し、バックエンド サーバー ファームからの暗号化と復号化のオーバーヘッドを低減することができます。 この一元化された TLS の処理によって、お客様の組織のセキュリティ要件に適したサーバーで中心的な役割を担う TLS ポリシーを指定することもできます。 これにより、コンプライアンス要件やセキュリティ ガイドラインに合致した推奨プラクティスを実行できます。
TLS ポリシーでは、TLS プロトコルのバージョン、暗号スイート、および TLS ハンドシェイク中に使用される暗号の優先順位を制御できます。 Application Gateway には、TLS ポリシーを制御するための 2 つのメカニズムが用意されています。 定義済みのポリシーかカスタム ポリシーのいずれかを使用できます。
使用状況とバージョンの詳細
Important
2025 年 8 月 31 日以降、Azure Application Gateway とやり取りするすべてのクライアントとバックエンド サーバーは、TLS 1.0 および 1.1 のサポートが中止されるため、トランスポート層セキュリティ (TLS) 1.2 以降を使用する必要があります。 ポリシーの廃止とリソース構成の変更の詳細については、 TLS 1.0 および 1.1 の提供終了 に関するページを参照してください。
クライアントとバックエンドが TLS 1.2 以降を使用している場合、ポリシーの変更は中断されません。 すべての Azure リージョンに適用される前に、ゲートウェイの TLS ポリシーを更新することをお勧めします。
アプリケーションゲートウェイリソースの設定はこの設定の SSLポリシーを名付けます。 この記事では、同じ設定を指す語として、本文中で TLS ポリシー を使用しています。
現在のクライアントおよびバックエンドの動作
- SSL 2.0 および 3.0 は、すべてのアプリケーション ゲートウェイに対して無効になっており、設定することはできません。
- カスタム TLS ポリシーでは、ゲートウェイの最小プロトコル バージョンとして、任意の TLS プロトコル(TLSv1_0、TLSv1_1、TLSv1_2、またはTLSv1_3)を選択できます。
- TLS ポリシーが選択されていない場合は、そのリソースの作成に使用されている API バージョンに基づいて、既定の TLS ポリシーが適用されます。
- TLS v1.3をサポートする2022年プリ定義およびCustomV2ポリシーは、アプリケーションゲートウェイV2のSKU(Standard_v2またはWAF_v2)でのみ利用可能です。
- 2022年プリ定義またはカスタムV2ポリシーを使用することで、TLSポリシーおよび SSLプロファイルのゲートウェイ全体のセキュリティとパフォーマンスの質が向上します。 そのため、1つのゲートウェイに古いポリシーと新しいポリシーの両方の共存はできません。 クライアントが古い TLS バージョンまたは暗号(たとえば、TLS v1.0)を必要とする場合、ゲートウェイ全体で古い定義済みポリシーまたはカスタムポリシーのいずれかを使用する必要があります。
- 接続に使用される TLS 暗号化スイートはまた、使用される証明書の種類にも基づきます。 「クライアントからアプリケーション ゲートウェイへの接続」で使用される暗号スイートは,アプリケーション ゲートウェイ上のリスナー証明書の種類に基づきます。 一方、「バックエンド プールへのアプリケーション ゲートウェイ接続」の確立に使用される暗号スイートは、バックエンドサーバーによって提示されるサーバー証明書の種類に基づきます。
定義済み TLS ポリシー
Application Gateway は、いくつかの定義済みのセキュリティポリシーを提供しています。 これらのポリシーを使用してゲートウェイを構成し、適切なセキュリティ レベルを設定できます。 ポリシー名には、構成が行われた年月が付加されます(AppGwSslPolicy<YYYYMMDD>)。 各ポリシーでは、それぞれ異なる TLS プロトコルのバージョンおよび/または暗号スイートが提供されます。 これらの定義済みポリシーは、Microsoft セキュリティ チームからのベスト プラクティスと推奨事項を念頭に置いて構成されています。 最新の TLS ポリシーを使用して、最高レベルの TLS セキュリティを設定することをお勧めします。
次のテーブルは、各定義済みポリシーの暗号スイートと最小プロトコル バージョンのサポート リスト を示しています。 暗号スイートの順位により、TLS ネゴシエーション中の優先順位が決定します。 これらの定義済みポリシーの暗号スイートの正確な順序を知るには、ポータルで PowerShell、CLI、REST API、またはリスナー ブレードを参照できます。
| 定義済みのポリシー名 (AppGwSslPolicy<YYYYYMMDD>) | 20150501 | 20170401 | 20170401S | 20220101 | 20220101S |
|---|---|---|---|---|---|
| 最小プロトコル バージョン | 1.0 | 1.1 | 1.2 | 1.2 | 1.2 |
| 有効なプロトコル バージョン | 1.0 1.1 1.2 |
1.1 1.2 |
1.2 | 1.2 1.3 |
1.2 1.3 |
| Default | True (API バージョン < 2023-02-01 の場合) |
False | False | True (API バージョン >= 2023-02-01 の場合) |
False |
| TLS_AES_256_GCM_SHA384 | ✗ | ✗ | ✗ | ✓ | ✓ |
| TLS_AES_128_GCM_SHA256 | ✗ | ✗ | ✗ | ✓ | ✓ |
| 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_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
| TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 | ✓ | ✗ | ✗ | ✗ | ✗ |
| TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
| 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_128_CBC_SHA256 | ✓ | ✓ | ✓ | ✗ | ✗ |
| TLS_RSA_WITH_AES_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
| TLS_RSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
| 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_128_CBC_SHA256 | ✓ | ✓ | ✓ | ✓ | ✗ |
| TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
| TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
| TLS_RSA_WITH_3DES_EDE_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
| TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
既定の TLS ポリシー
アプリケーションゲートウェイのリソース構成でTLSポリシーを指定していない場合、システムはデフォルトのTLSポリシーを適用します。 デフォルトのポリシーは、ゲートウェイ作成に使うAPIバージョンによって異なります。
- API バージョン 2023-02-01 以降の場合、最小プロトコル バージョンは 1.2 に設定されています (バージョンは 1.3 までサポートされています)。 これらの API バージョンで作成されたゲートウェイには、リソース構成に読み取り専用プロパティ defaultPredefinedSslPolicy:AppGwSslPolicy20220101 が表示されます。 このプロパティは、使用する既定の TLS ポリシーを定義します。
- 古い API バージョン < 2023-02-01 では、定義済みポリシー AppGwSslPolicy20150501 が既定で使用されるため、最小プロトコル バージョンは 1.0 に設定されています (1.2 までのバージョンがサポートされています)。
既定の TLS が要件に適合しない場合は、別の定義済みポリシーを選択するか、カスタムのものを使用します。
Note
更新された既定の TLS ポリシーに対する Azure PowerShell と CLI のサポートは近日公開予定です。
カスタム TLS ポリシー
お客様の要件に合わせて TLS ポリシーを構成する必要がある場合、カスタム TLS ポリシーを使用できます。 カスタム TLS ポリシーでは、サポートされる最小バージョンの TLS プロトコルと、サポートされる暗号スイートとその優先順位を完全に制御できます。
Note
新しい強力な暗号と TLSv1.3 のサポートは、 CustomV2 ポリシーでのみ使用できます。 強化されたセキュリティとパフォーマンスの利点を提供します。
Important
- Application Gateway v1 SKU(StandardまたはWAF)でカスタムTLSポリシーを使用している場合は、必須の暗号
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256リストに追加してください。 この暗号は、Application Gateway v1 SKU でメトリックとログを有効にするために必要です。 この要件は、Application Gateway v2 SKU(Standard_v2またはWAF_v2)には適用されません。 - TLSv1.3 では、暗号スイートの “TLS_AES_128_GCM_SHA256” と “TLS_AES_256_GCM_SHA384” は必須です。 PowerShell または CLI を使用して最小プロトコル バージョン 1.2 または 1.3 の CustomV2 ポリシーを設定する場合は、これらを明示的に言及する必要はありません。 したがって、これらの暗号スイートは、Portal を除き、[Get Details] (詳細の取得) の出力には表示されません。
サポート対象の暗号スイート
Application Gateway では、カスタム ポリシーで選択できる次の暗号スイートがサポートされています。 暗号スイートの順位により、TLS ネゴシエーション中の優先順位が決定します。
- TLS_AES_128_GCM_SHA256(CustomV2のみで利用可能)
- TLS_AES_256_GCM_SHA384(CustomV2のみで利用可能)
- 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_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- 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_128_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA
- 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_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
Limitations
- バックエンド サーバーへの接続では、TLS 1.3 が使用可能な場合は TLS 1.3 が優先され、TLS 1.2 のフォールバック がサポートされます。 バックエンド接続の TLS バージョンと暗号スイートはカスタマイズできません。
- 現時点では、TLS 1.3 の実装は "ゼロ ラウンド トリップ時間 (0-RTT)" 機能では有効になっていません。
- TLS セッション (ID またはチケット) の再開はサポートされていません。
- Application Gateway v2 は次の DHE 暗号をサポートしていません。 これらは、定義済ポリシーに記載されている場合でも、クライアントとの TLS 接続には使用されません。 DHE 暗号ではなく、安全でより高速な ECDHE 暗号をお勧めします。
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- Maximum Fragment Length Negotiation のサポートを必要とする制約のあるクライアントは、新しい 2022 Predefined または CustomV2 ポリシー を使用する必要があります。
次のステップ
TLS ポリシーの構成について学習したい場合は、Application Gateway での TLS ポリシーのバージョンと暗号スイートの構成に関する記事をご覧ください。