この記事では、トランスポート層セキュリティ (TLS) 検査ポリシーを展開するときの一般的なトラブルシューティング シナリオについて説明します。
証明書の問題: ローカル発行者証明書を取得できません
このエラーは、Git や Python などの開発者ツールが既定でオペレーティング システムの証明書ストアを使用していないために発生します。 代わりに、独自の証明書ストアを保持し、TLS 検査証明書を認識しません。
Git のトラブルシューティング
Git に Windows の証明書ストアを使用するように指示できます。
git config --global http.sslbackend schannel
または、Git の証明機関バンドルにカスタム TLS 検査ルート証明書を追加して、Git が内部証明機関を信頼するようにすることもできます。
$certPath = "./myTLSInspectionRootCA.crt"
$gitCAPath = git config --get http.sslcainfo
if ($gitCAPath) {
Get-Content $certPath | Add-Content -Path $gitCAPath
Write-Host "Certificate appended to Git CA bundle"
} else {
Write-Host "Git CA bundle path not found"
}
Python のトラブルシューティング
Azure CLI などの Python ベースのツールは、正しい証明機関がないと失敗します。 Python が Windows 証明書ストアを信頼できるように、 pip-system-certs をインストールできます。
Azure CLI
"C:\Program Files\Microsoft SDKs\Azure\CLI2\python.exe" -m pip install pip-system-certs
システム Python
python -m pip install pip-system-certs
または、Python の CA バンドルにカスタム TLS 検査ルート証明書を追加して、Python が内部証明機関を信頼するようにすることもできます。
$certPath = "./myTLSInspectionRootCA.crt"
$pythonCertPath = python -c "import certifi; print(certifi.where())"
Get-Content $certPath | Add-Content -Path $pythonCertPath
Write-Host "Certificate appended to Python's CA bundle"
Docker のトラブルシューティング
TLS 検査証明書が信頼されていない場合、Docker コンテナーは TLS 接続に失敗する可能性があります。 Dockerfile に次のコマンドを追加して、証明書を Docker の信頼された証明書の一覧に追加します。
Debian または Ubuntu ベースのイメージ
COPY myTLSInspectionRootCA.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates
Alpineに基づくイメージ
COPY myTLSInspectionRootCA.crt /usr/local/share/ca-certificates/
RUN apk update && apk add ca-certificates && update-ca-certificates
Node のトラブルシューティング
Node.js では、オペレーティング システムの証明書ストアは既定では使用されません。 次のいずれかの方法を使用して、システム証明書ストアを使用するように Node.js を構成できます。
コマンド ライン
アプリケーションの実行時には、 --use-system-ca フラグを使用します。
<your-app>.jsをアプリケーションのエントリ ポイント (index.jsやserver.jsなど) に置き換えます。
node --use-system-ca <your-app>.js
環境変数 (単一セッション)
1 つのコマンドの変数をインラインで設定します。
NODE_USE_SYSTEM_CA=1 node <your-app>.js
環境変数 (すべての Node.js アプリ)
すべての Node.js アプリケーションに設定を永続的に適用するには、 NODE_USE_SYSTEM_CA を永続的な環境変数として設定します。
現在のユーザーの場合:
setx NODE_USE_SYSTEM_CA 1
マシン上のすべてのユーザー (管理者特権が必要):
setx NODE_USE_SYSTEM_CA 1 /M
いずれかのコマンドを実行した後、開いているターミナルを再起動して変更を有効にします。 すべての Node.js プロセスは、システム証明書ストアを自動的に使用します。
アプリケーションがモバイル プラットフォームで動作しない
証明書のピン留めにより TLS 検査が有効になっていると、モバイル アプリケーションが失敗する可能性があります。この場合、アプリケーションは特定の証明書のみを信頼するように制限されます。
トラブルシューティングの手順
TLS 検査からアプリケーションの宛先 FQDN を除外する TLS バイパス規則を作成します。 詳細な手順については、「 トランスポート層セキュリティ検査ポリシーの構成」を参照してください。
内部証明書が既に存在する
従来の TLS 構成を使用しているプレビューのお客様の場合、証明書署名要求 (CSR) を作成すると、次のエラーが表示されることがあります。 Cannot create external certificate, an internal certificate already exists for tenant.
トラブルシューティングの手順
この問題を解決するには、次の手順を実行します。
- グローバル セキュリティで保護されたアクセス管理者として、カスタム TLS 検査設定を使用して Microsoft Entra 管理センターにサインインします。
- グローバル セキュリティで保護されたアクセス>Settings>Session 管理に移動します。
- [ TLS 検査 ] タブを選択します。
- 証明書 URL を選択して削除します。
- 保存 を選択します。