Använda anpassade certifikatutfärdare (CA) i Azure Kubernetes Service (AKS)

Med stöd för anpassad certifikatutfärdare (CA) kan du lägga till upp till 10 base64-kodade certifikat i nodens förtroendearkiv. För nya kluster får CA-certifikatinnehållet inte överstiga 35 KB. Du behöver ofta den här funktionen när noden kräver certifikatutfärdare ,till exempel när du ansluter till ett privat register.

Den här artikeln visar hur du skapar anpassade certifikatutfärdare och tillämpar dem på dina AKS-kluster.

Note

Den anpassade CA-funktionen lägger till dina anpassade certifikat i betroendeförrådet för AKS-noden. Certifikat som läggs till med den här funktionen är inte tillgängliga för containrar som körs i poddar. Om du behöver certifikaten i containrar måste du lägga till dem separat genom att lägga till dem i bilden som används av dina poddar eller vid körning via skript och en hemlighet (secret).

Prerequisites

  • Ett Azure-abonnemang. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
  • Azure CLI version 2.72.0 eller senare installerad och konfigurerad. Kör az --version-kommandot för att hitta din CLI-version. Om du behöver installera eller uppgradera, se Installera Azure CLI.
  • En base64-kodad certifikatsträng eller en textfil med certifikat.

Limitations

  • Windows-nodpooler stöds inte.
  • Det går inte att installera olika certifikatutfärdare i samma kluster.
  • För nya kluster får CA-certifikatinnehållet inte överstiga 35 KB.

Skapa en certifikatfil

  • Skapa en textfil som innehåller upp till 10 tomma radavgränsade certifikat. För nya kluster får CA-certifikatinnehållet i filen inte överstiga 35 kB. När du skickar den här filen till klustret installeras certifikaten i AKS-nodens förtroendelager.

    Exempel på textfil:

        -----BEGIN CERTIFICATE-----
        cert1
        -----END CERTIFICATE-----
    
        -----BEGIN CERTIFICATE-----
        cert2
        -----END CERTIFICATE-----
    

Kontrollera att det inte finns några blanksteg i textfilen, innan du fortsätter till nästa steg, för att undvika fel.

Skicka anpassade certifikatutfärdare till ditt AKS-kluster

  • Skicka certifikat till klustret med kommandot az aks create eller az aks update med --custom-ca-trust-certificates inställt på namnet på certifikatfilen.

    # Create a new cluster
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --node-count 2 \
        --custom-ca-trust-certificates <path-to-certificate-file> \
        --generate-ssh-keys
    
    # Update an existing cluster
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --custom-ca-trust-certificates <path-to-certificate-file>
    

    Note

    Den här åtgärden utlöser en modelluppdatering för att säkerställa att alla befintliga noder har samma certifikatutfärdare installerade för korrekt etablering. AKS skapar nya noder, tömmer befintliga noder, tar bort befintliga noder och ersätter dem med noder som har den nya uppsättningen certifikatutfärdare installerade.

Kontrollera att CAs är installerade

  • Kontrollera att certifikatutfärdarna är installerade genom att använda det az aks show-kommandot.

    az aks show --resource-group <resource-group-name> --name <cluster-name> | grep securityProfile -A 4
    

    I utdata ska avsnittet securityProfile innehålla dina anpassade CA-certifikat. Till exempel:

      "securityProfile": {
        "azureKeyVaultKms": null,
        "customCaTrustCertificates": [
            "values"
    

Åtgärda anpassade CA-formateringsfel

Om du lägger till certifikat i ett kluster kan det leda till ett fel om filen med certifikaten inte är korrekt formaterad. Du kan se ett fel som liknar följande exempel:

failed to decode one of SecurityProfile.CustomCATrustCertificates to PEM after base64 decoding

Om det här felet uppstår bör du kontrollera att indatafilen inte har några extra nya rader, blanksteg eller data än korrekt formaterade certifikat som visas i exempelfilen.

Lös anpassat CA X.509-certifikat signerad av okänd utfärdare fel.

AKS kräver att certifikat som skickas är korrekt formaterade och base64-kodade. Kontrollera att de certifikatutfärdare (CAs) du har skickat är korrekt kodade i base64 och att filer med certifikatutfärdare inte har CRLF-radbrytningar.

Starta om containern för att hämta nya certifikat

Om containerd inte hämtar nya certifikat kör du systemctl restart containerd kommandot från nodens gränssnitt. När containerd startar om bör containerruntime hämta de nya certifikaten.

enableCustomCATrust (förhandsversion) migrering av pensionering

Important

Från och med den 14 september 2026 upphör förhandsgranskningsegenskapen enableCustomCATrust . Efter det datumet enableCustomCATrust=true aktiverar fältet på nodpoolnivå inte längre funktionen Anpassad certifikatutfärdare (CA) i AKS. Det senaste förhandsversions-API:et som stöder den här egenskapen är 2025-08-02-preview. Befintliga nodpooler som fortfarande är beroende enableCustomCATrust=true av kan uppleva fel under skalningsåtgärder eller när certifikat uppdateras. För att undvika avbrott i tjänsten uppdaterar du de berörda klustren och nodpoolerna och tar bort förhandsgranskningsegenskapen före den 14 september 2026. För migreringssteg, se enableCustomCATrustmigrering vid indragning (förhandsversion). Mer information om den här pensioneringen finns i GitHub-problemet för pensionering. Om du vill hålla dig informerad om tillkännagivanden och uppdateringar kan du följa versionsinformationen för AKS.

Ta bort egenskapen Custom CA Trust från dina nodpooler

Aktuella Azure CLI versioner innehåller inte alternativet--disable-custom-ca-trust. Om du vill ta bort enableCustomCATrust-egenskapen som fasas ut använder du en generisk resursuppdatering för varje berörd nodpool. API:et 2025-08-02-preview är den senaste API-versionen som exponerar den här egenskapen.

POOL_ID=$(az aks nodepool show \
  --resource-group <resource-group> \
  --cluster-name <cluster-name> \
  --name <node-pool-name> \
  --query id \
  --output tsv)

az resource update \
  --ids "$POOL_ID" \
  --api-version 2025-08-02-preview \
  --set properties.enableCustomCATrust=false

Det här kommandot hämtar den fullständiga nodpoolresursen, uppdaterar enableCustomCATrustoch skickar tillbaka den uppdaterade resursen. Den bevarar de andra egenskaperna för nodpoolen.

Kontrollera att egenskapen är inaktiverad och att nodpoolens uppdatering lyckades:

az rest \
  --method get \
  --url "https://management.azure.com${POOL_ID}?api-version=2025-08-02-preview" \
  --query "properties.{enableCustomCATrust:enableCustomCATrust,provisioningState:provisioningState}" \
  --output json

Upprepa de här stegen för varje nodpool där enableCustomCATrust är aktiverad. Förväntade utdata visar enableCustomCATrust inställt på false och provisioningState inställt på Succeeded.

Om du vill att Custom CA Trust ska aktiveras i dina kluster efter den här tillbakadragningen använder --custom-ca-trust-certificates du och anger en sökväg till en certifikatfil.

Mer information om metodtips för AKS-säkerhet finns i Metodtips för klustersäkerhet och uppgraderingar i Azure Kubernetes Service (AKS).