HTTPS などの暗号化されたトラフィックに隠された高度な攻撃は、トラフィックを復号できないため検出が困難です。Cloud Firewall の TLS インスペクション機能は、TLS 証明書をプライベート ルート CA に置き換えることで、アウトバウンドの暗号化トラフィックを保護します。これにより、侵入防御システム (IPS) 保護のための復号と、プライベート証明書を使用した安全な通信の両方が可能になります。
TLS インスペクション機能は現在パブリックプレビュー段階であり、一般提供の前に変更される可能性があります。ご質問やフィードバックがある場合は、お客様のアカウントマネージャーにご連絡ください。
TLS インスペクションが必要な理由
HTTPS のような暗号化プロトコルは、現在インターネットで広く使用されています。しかし、そのペイロードは暗号文であるため、Cloud Firewall の IPS エンジンはコンテンツを検査したり、トラフィックを分析して脅威を検出したりすることができません。
TLS インスペクションを使用すると、インスペクションポリシーを設定して、特定のアウトバウンドトラフィックを保護できます。クライアントと Cloud Firewall 間の元の TLS 証明書を、指定されたプライベート証明書に置き換えます。
Cloud Firewall がサーバー側の証明書を取得すると、トラフィックを復号できるようになります。これにより、IPS エンジンは高度な攻撃や機密データの漏洩を検出してブロックできます。
適用範囲
バージョンの制限:従来の従量課金 1.0 の課金方法を使用している Cloud Firewall インスタンスは、この機能をサポートしていません。
リージョンの制限:中国 (北京)、中国 (上海)、中国 (杭州)、中国 (張家口) のリージョンでのみサポートされています。
TLS プロトコルバージョンの制限:
TLS 1.0、1.1、1.2 のみをサポートします。
Encrypted Client Hello (ECH) が有効になっていない TLS 1.3 は正常に転送されますが、復号やインスペクションはできません。
初期の SSL バージョンおよび ECH が有効な TLS 1.3 はサポートされていません。これらのトラフィックに対して TLS インスペクションを有効にすると、通信が中断されます。
プロトコルタイプの制限:UDP 上の QUIC などの非 TCP リクエストは転送のみとなり、TLS インスペクションはサポートされません。
ネットワーク診断への影響:TLS インスペクションを有効にすると、TCP MTR (My Traceroute) はオリジンサーバーへのパスを追跡できなくなります。
認証モードの制限:相互 TLS (mTLS) はサポートされていません。一方向 TLS (クライアントがサーバー側の証明書を検証) のみがサポートされます。
SNI の要件:TLS インスペクションを有効にするには、TLS サーバ名表示 (SNI) が設定された証明書のドメイン名と一致する必要があります。
操作手順
Cloud Firewall コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択し、TLS 検査 ページに移動します。
ステップ 1: TLS インスペクションポリシーの設定
TLS 検査 ページで、ポリシーリストの上にある TLS 検査ポリシーを作成 をクリックします。右側に TLS 検査ポリシーを作成 という名前のドロワーが表示されます。
証明書を関連付ける。
設定項目
説明
ポリシー名
TLS インスペクションポリシーに、識別しやすい名前を入力します。
TLS 証明書を関連付ける
既存の証明書を選択します。
説明最初のポリシーを作成する際、証明書のドロップダウンには Apply for a Trial Certificate オプションが表示されます。これをクリックすると、迅速な評価のためにテスト証明書が自動的に作成されます。トライアル証明書は一度しか使用できません。本番環境では、お客様自身の証明書を購入して使用してください。
PCA 証明書のみがサポートされており、以下の要件を満たす必要があります:
証明書の使用目的は「企業内利用」に設定する必要があります。
中国暗号アルゴリズムを使用した証明書はサポートされていません。
RSA 秘密鍵アルゴリズムを使用する場合、鍵長は 2048 ビット以上である必要があります。
ECC 秘密鍵アルゴリズムを使用する場合、曲線 P-256 を選択してください。
利用可能な証明書がない場合は、Buy Certificate をクリックして証明書管理コンソールに移動します。購入時には、PCA 証明書の使用目的が「企業内利用」に設定されていることを確認してください。PCA 証明書の詳細については、「PCA 証明書とは」をご参照ください。
証明書の有効期間
証明書を選択すると、その有効期間が表示されます。残りの有効期間が 1 年未満の場合、システムは強制的なリマインダーを発行します。証明書を定期的に確認し、少なくとも 1 年の有効期間が残っていることを確認してください。
説明
ポリシーの説明を入力します。
すべての設定項目を入力した後、次へ をクリックして 検査範囲の設定 に進みます。このステップを完了すると、ポリシーが作成され保存されることに注意してください。
検査範囲の設定。
重要各インスペクション範囲には、最大 20,000 項目を含めることができます。
1 つの TLS インスペクションポリシーが消費するクォータは、そのすべてのインスペクション範囲のクォータの合計に等しくなります。
1 つのインスペクション範囲が消費するクォータ = 送信元 IP の数 × 送信元ポート範囲の数 × 宛先 IP の数 × 宛先ポート範囲の数。
設定項目
説明
プロトコルタイプ
TCPのみがサポートされています。Source IP Address
アウトバウンドトラフィックをインスペクションしたいホストのパブリック IP アドレスを選択します。最大 1,000 個の IP を選択できます。
説明サポートされているアセットタイプ:
ECS EIP、ECS パブリック IP、NAT EIP、EIP、ENI EIP。送信元ポート
選択したアセットでインスペクションするポートを指定します。
開始ポート/終了ポートの形式を使用します。ポート値の範囲は0-65535です。複数のポート範囲はカンマで区切ります。最大 100 個の範囲がサポートされています。説明単一のポートであっても、すべてのポートは範囲として指定する必要があります。例えば、
8080/8080はポート 8080 のみをインスペクションします。すべてのポートをインスペクションするには、
0/65535を使用します。
Destination IP Address
送信元 IP がアクセスする宛先サービスです。
説明標準の IPv4 CIDR 表記を使用します。例:
192.0.2.0/24,8.8.8.8/32。複数の CIDR ブロックをカンマで区切って入力できます。最大 100 個の IP オブジェクトがサポートされています。
すべてのアドレスを表すには、
0.0.0.0/0を使用します。
宛先ポート
送信元 IP アセットがアクセスする宛先ポートです。
開始ポート/終了ポートの形式を使用します。ポート値の範囲は0-65535です。複数のポート範囲はカンマで区切ります。最大 100 個の範囲がサポートされています。説明
インスペクション範囲の説明を入力します。
その他の操作
保存:検査範囲 をクリックし、セクションの下にある 保存 をクリックすると、次へ をクリックせずにインスペクション範囲を直接保存できます。保存が成功すると、セクションの右上に Saved と表示されます。
追加:検査範囲を追加 をクリックして、別の範囲を追加します。1 つのポリシーで最大 10 個のインスペクション範囲がサポートされます。
削除: 検査範囲 折りたたみパネルの右上隅にある
をクリックします。 確認後、現在の検査範囲を削除できます。 保存と同様に、確認すると削除はすぐに有効になり、次へ をクリックする必要はありません。 データの取り扱いにはご注意ください。
すべての設定項目を入力した後、次へ をクリックしてポリシー設定を完了します。
ポリシー詳細の確認
設定後、ポリシーとインスペクション範囲の詳細が表示されます。ここに表示される Policy ID はログに表示されます。
ステップ 2: TLS 証明書のインストール
TLS インスペクションポリシーを作成した後、インスペクション範囲で指定されたホストアセットに関連付けられた証明書をインストールします。
インスペクション対象のアセットタイプが NAT EIP の場合、インターネット NAT ゲートウェイ経由でインターネットにアクセスするすべての ECS インスタンスに証明書をインストールする必要があります。そうしないと、トラフィックが中断される可能性があります。
証明書のダウンロード

TLS 検査ポリシーの設定 リストで、作成したポリシーを見つけ、[操作] 列の 証明書をダウンロード をクリックします。ファイルをダウンロードして展開し、証明書ファイル (
.crt拡張子) を取得します。ソース IP ホストにログオンします。
検査範囲 の作成時に選択した 送信元 IP アドレス のホストにログインします。証明書をホスト上の任意のディレクトリにアップロードします。ECS インスタンスの場合、アップロード手順については「ファイル転送方法の選択」をご参照ください。
証明書をインストールします。
証明書をアップロードしたディレクトリに移動します。証明書をシステム信頼ストアにコピーし、更新コマンドを実行します。手順はオペレーティングシステムによって異なります:
説明TLS ポリシーが中間 CA 証明書を使用している場合は、ルート CA と中間 CA の両方をインストールしてください。
以下の例では、システム信頼ストアを使用することを前提としています。ご利用のアプリケーションがカスタム信頼ストアを使用している場合は、それに応じて証明書をインストールしてください。
CentOS / Alibaba Cloud Linux / Anolis / Red Hat
証明書ファイルのコピー:
cp <certificate filename> /etc/pki/ca-trust/source/anchors/証明書の更新:
sudo update-ca-trust更新された証明書の表示:
cat /etc/ssl/certs/ca-bundle.crt証明書の内容が表示されれば、インストールは成功です。

Ubuntu
証明書ファイルのコピー:
cp <certificate filename> /usr/local/share/ca-certificates/証明書の更新:
sudo update-ca-certificates更新された証明書の表示:
cat /etc/ssl/certs/ca-certificates.crt証明書の内容が表示されれば、インストールは成功です。

Windows
重要証明書ファイルに複数の CA (例:ルート CA と中間 CA) を含むチェーンが含まれている場合、Windows 証明書マネージャーはデフォルトで最初の CA のみをインストールします。各 CA ブロックを手動で別々のファイルに分割し、個別にインストールしてください。
証明書を分割するには、ダウンロードしたファイルをテキストエディターで開きます。
-----BEGIN CERTIFICATE-----と-----END CERTIFICATE-----の間の各ブロックを新しいファイルにコピーし、.crt拡張子で保存します。
分割後:

証明書のインストール:証明書ファイルを右クリックし、[証明書のインストール] をクリックします。以下の手順に従ってください:
1
2
3



[次へ] をクリックしてインポートを完了します。
証明書の表示:コマンドプロンプトで
certmgr.mscを実行して証明書マネージャーを開きます。
SUSE
証明書ファイルのコピー:
cp <certificate filename> /etc/pki/trust/anchors証明書の更新:
sudo c_rehash .更新された証明書の表示:
sudo trust list --filter=ca-anchors |grep -C 2 <certificate CN>証明書情報が表示されれば、インストールは成功です。

Fedora / Fedora CoreOS
証明書ファイルのコピー:
sudo cp <certificate filename> /etc/pki/ca-trust/source/anchors/証明書の更新:
sudo update-ca-trust extract更新された証明書の表示:
sudo trust list --filter=ca-anchors |grep -C 2 <certificate CN>証明書情報が表示されれば、インストールは成功です。

Container Service for Kubernetes (ACK)
アウトバウンドトラフィックが ACK クラスター内の Pod から発生する場合、コンテナーはホストから隔離されているため、各 Pod 内に PCA 証明書をインストールする必要があります。ノード自体が HTTPS リクエストを開始する場合 (例えば、パブリックイメージをプルする場合)、ノードにも証明書をインストールしてください。
説明以下の手順は Alibaba Cloud Linux 3.2104 LTS 64 ビット (コンテナー最適化) に適用され、参考用です。実際の OS とビジネス要件に基づいてコマンドを調整してください。
一部のコマンドはサービスを再起動します。ビジネスへの影響を避けるため、これらの操作はオフピーク時に実行してください。
ノードへの証明書のインストール
各ノードにログインし、以下のコマンドを実行します。
証明書ファイルのコピー:
cp <certificate filename> /etc/pki/ca-trust/source/anchors/証明書の更新:
sudo update-ca-trust更新された証明書の表示:
cat /etc/ssl/certs/ca-bundle.crt証明書の内容が表示されれば、インストールは成功です。
変更を適用するために containerd を再起動:
sudo systemctl restart containerd。
Pod への証明書のインストール
ターゲットクラスターのコンソールで、以下の設定例を使用してシークレットを作成します。シークレットの値は証明書ファイルの内容です。作成手順については、「シークレットの管理」をご参照ください。
以下の kubectl コマンドを使用してシークレットを作成することもできます。ca_chain.crtを実際の証明書ファイル名に置き換えてください。kubectl create secret generic cfw-pca-cert \ --from-file=ca_chain.crt=./ca_chain.crt \ -n defaultDeployment の場合、その YAML ファイルに以下を追加します:
spec.template.spec.containersフィールドに、証明書をマウントして信頼ストアを更新するために以下を追加します。secretNameを前のステップのシークレット名 (cfw-pca-cert) に置き換えます:volumes: - name: custom-ca-volume secret: secretName: cfw-pca-cert volumeMounts: - name: custom-ca-volume mountPath: /etc/ssl/custom readOnly: true引き続き
spec.template.spec.containersの下に、起動コマンドを追加します。説明以下の例はコンテナー内で CentOS を使用しており、参考用です。実際の OS とビジネス要件に基づいてコマンドを調整してください。
command: - "/bin/sh" - "-c" - | # 1. curl のインストール echo "Installing curl......" yum install -y curl # 2. 証明書のマウントを確認。ca_chain.crt を実際のファイル名に置き換えてください if [ ! -f /etc/ssl/custom/ca_chain.crt ]; then echo "ERROR: Certificate file not found!" exit 1 fi # 3. CentOS の手順に従って証明書をインジェクト echo "Copying certificate to anchors directory..." cp /etc/ssl/custom/ca_chain.crt /etc/pki/ca-trust/source/anchors/ echo "Updating CA trust store..." update-ca-trust # 4. Pod を実行し続ける echo "Pod ready for manual testing. Use 'kubectl exec' to test further." sleep infinity
ブラウザの信頼ストア
一部のブラウザ (Firefox など) は、システム CA ストアを使用せず、独自の証明書信頼ストアを維持します。update-ca-certificates でシステム証明書を更新した後でも、ブラウザは証明書の警告を表示する場合があります。この場合、以下のように証明書をブラウザの信頼ストアにインポートします。
このようなブラウザの証明書インポート手順は、Linux と Windows で同じです。
1 | 2 |
|
|
ステップ 3: インスペクションの有効化とトラフィックログのクエリ
ホストアセットに証明書をインストールした後、インスペクションポリシーを有効にします。
重要新しい接続の場合、TLS インスペクションを有効にしてから約 1 分後に保護が有効になります。既存の持続的接続は保護されません。
すでに Cloud Firewall によって保護されている EIP の場合、TLS インスペクションを無効にすると持続的接続が中断されます。ダウンタイムは、ご利用のアプリケーションが再接続する速さに依存します。

TLS 検査 ページで、作成したポリシーを表示し、ステータススイッチを切り替えて TLS インスペクションを有効にします。有効にすると、Cloud Firewall は設定に基づいてアウトバウンドトラフィックの暗号化されたコンテンツをインスペクションします。
説明ポリシーは無効になっている場合にのみ削除できます。
トラフィックログのクエリ
インスペクション対象のホストがトラフィックを生成した後、Cloud Firewall コンソールの左側のナビゲーションウィンドウで、 を選択します。
で、一致した TLS インスペクションポリシーと範囲を含む、ホストからのトラフィックを表示できます。
ログには、ポリシーとインスペクション範囲の ID が表示されます。


