Felsöka inspektionsfel i Transport Layer Security (TLS) för global säker åtkomst

Den här artikeln beskriver vanliga felsökningsscenarier när du distribuerar en TLS-inspektionsprincip (Transport Layer Security).

Certifikatproblem: det går inte att hämta det lokala utfärdarcertifikatet

Det här felet beror på att utvecklarverktyg som Git och Python inte använder operativsystemets certifikatarkiv som standard. I stället underhåller de sina egna certifikatarkiv och känner inte igen TLS-inspektionscertifikatet.

Felsökning för Git

Du kan dirigera Git till att använda Windows certifikatarkiv:

git config --global http.sslbackend schannel

Du kan också lägga till ett anpassat TLS-kontrollrotcertifikat i Gits certifikatutfärdarpaket så att Git litar på din interna certifikatutfärdare.

$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"
}

Felsökning för Python

Python-baserade verktyg, till exempel Azure CLI, misslyckas utan rätt certifikatutfärdare. Du kan installera pip-system-certs så att Python litar på Windows-certifikatarkivet:

Azure CLI (kommandoradsgränssnittet för Azure)

"C:\Program Files\Microsoft SDKs\Azure\CLI2\python.exe" -m pip install pip-system-certs

System Python

python -m pip install pip-system-certs

Du kan också lägga till ett anpassat TLS-kontrollrotcertifikat i Pythons CA-paket så att Python litar på din interna certifikatutfärdare.

$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"

Felsökning för Docker

Docker-containers kan misslyckas med anslutningar via TLS när TLS-inspektionscertifikatet inte är betrott. Lägg till certifikatet i Dockers lista över betrodda certifikat genom att lägga till dessa kommandon i Dockerfile:

Debian- eller Ubuntu-baserade bilder

COPY myTLSInspectionRootCA.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates

Alpine-baserade bilder

COPY myTLSInspectionRootCA.crt /usr/local/share/ca-certificates/
RUN apk update && apk add ca-certificates && update-ca-certificates

Felsökning för Node

Node.js använder inte operativsystemets certifikatarkiv som standard. Du kan konfigurera Node.js att använda systemcertifikatarkivet med någon av följande metoder:

Kommandorad

--use-system-ca Använd flaggan när du kör programmet. Ersätt <your-app>.js med programmets startpunkt (till exempel index.js eller server.js):

node --use-system-ca <your-app>.js

Miljövariabel (enskild session)

Sätt variabeln direkt i kommandot för ett enskilt kommando:

NODE_USE_SYSTEM_CA=1 node <your-app>.js

Miljövariabel (alla Node.js appar)

Om du vill tillämpa inställningen permanent för alla Node.js program anger du NODE_USE_SYSTEM_CA som en beständig miljövariabel.

För den aktuella användaren:

setx NODE_USE_SYSTEM_CA 1

För alla användare på datorn (kräver administratörsbehörighet):

setx NODE_USE_SYSTEM_CA 1 /M

När du har kört något av kommandona startar du om alla öppna terminaler för att ändringen ska börja gälla. Alla Node.js processer använder sedan systemcertifikatarkivet automatiskt.

Program fungerar inte på mobila plattformar

Mobila program kan misslyckas när TLS-inspektionen är aktiverad på grund av att certifikatet fästs, vilket begränsar program till att endast lita på specifika certifikat.

Felsökningssteg

Skapa en TLS-förbikopplingsregel för att undanta programmets mål-FQDN från TLS-inspektion. Detaljerade steg finns i Konfigurera inspektionsprinciper för Transport Layer Security.

Det finns redan ett internt certifikat

För förhandsversionskunder med en äldre TLS-konfiguration kan det här felet uppstå när du skapar en begäran om certifikatsignering (CSR): Cannot create external certificate, an internal certificate already exists for tenant.

Felsökningssteg

Så här löser du problemet:

  1. Logga in på administrationscentret för Microsoft Entra med anpassade TLS-inspektionsinställningar som global administratör för säker åtkomst.
  2. Bläddra tillSessionshantering för globala>>.
  3. Välj fliken TLS-inspektion .
  4. Välj och ta bort certifikat-URL:en.
  5. Välj Spara.