Usare autorità di certificazione personalizzate nel servizio Azure Kubernetes

L'autorità di certificazione personalizzata consente di aggiungere fino a 10 certificati con codifica base64 all'archivio attendibilità del nodo. Questa funzionalità è spesso necessaria quando le autorità di certificazione (CA) devono essere presenti nel nodo, ad esempio quando ci si connette a un registro privato.

Questo articolo mostra come creare CA personalizzate e applicarle ai cluster del servizio Azure Kubernetes.

Note

La funzionalità CA personalizzata aggiunge i certificati personalizzati all'archivio attendibilità del nodo AKS. I certificati aggiunti con questa funzionalità non sono disponibili per i contenitori in esecuzione nei pod. Se sono necessari i certificati all'interno dei contenitori, è necessario aggiungerli separatamente aggiungendoli all'immagine usata dai pod o in fase di esecuzione tramite scripting e un segreto.

Prerequisites

  • Una sottoscrizione di Azure. Se non hai una sottoscrizione di Azure, crea un account gratuito.
  • interfaccia della riga di comando di Azure versione 2.72.0 o successiva installata e configurata. Per trovare la versione della CLI, eseguire il comando az --version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
  • Una stringa di certificato base64 encoded o un file di testo con certificato.

Limitations

  • I pool di nodi di Windows non sono supportati.
  • L'installazione di ca diverse nello stesso cluster non è supportata.

Creare un file di certificato

  • Creare un file di testo contenente fino a 10 certificati separati da righe vuote. Quando si passa questo file al cluster, i certificati vengono installati negli archivi attendibili del nodo AKS.

    File di testo di esempio:

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

Prima di procedere al passaggio successivo, assicurarsi che nel file di testo non siano presenti spazi vuoti per evitare errori.

Passare CA personalizzate nel cluster AKS

  • Trasferisci i certificati al tuo cluster utilizzando il comando az aks create o il comando az aks update, impostando --custom-ca-trust-certificates sul nome del file del tuo certificato.

    # 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

    Questa operazione attiva un aggiornamento del modello per garantire che tutti i nodi esistenti abbiano le stesse CA installate per garantire un provisioning corretto. AKS crea nuovi nodi, scarica i nodi esistenti, li elimina e li sostituisce con nodi in cui è installato il nuovo set di CAs.

Verificare che le CA siano installate

  • Verificare che le CA siano installate usando il comando az aks show.

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

    Nell'output la securityProfile sezione deve includere i certificati della CA personalizzati. Per esempio:

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

Risolvere gli errori di formattazione delle CA personalizzate

L'aggiunta di certificati a un cluster può generare un errore se il file con i certificati non è formattato correttamente. È possibile che venga visualizzato un errore simile all'esempio seguente:

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

Se si verifica questo errore, verificare che il file di input non contenga nuove righe, spazi vuoti o dati diversi da quelli formattati correttamente, come illustrato nel file di esempio.

Risolvere gli errori del certificato X.509 personalizzato firmato da un'autorità sconosciuta

Il servizio Azure Kubernetes richiede che i certificati forniti siano formattati correttamente e codificati in base64. Assicurarsi che le CA passate siano codificate correttamente in base64 e che i file con CA non abbiano interruzioni di riga CR LF.

Riavviare il contenitore per raccogliere nuovi certificati

Se containerd non preleva nuovi certificati, eseguire il systemctl restart containerd comando dalla shell del nodo. Dopo il riavvio di containerd, il runtime del contenitore dovrebbe caricare i nuovi certificati.

enableCustomCATrust (anteprima) Migrazione del ritiro

Importante

A partire dal 14 settembre 2026, la proprietà enableCustomCATrust di anteprima verrà ritirata. Dopo tale data, il campo enableCustomCATrust=true a livello del pool di nodi non consentirà più di abilitare la funzionalità di Autorità di certificazione (CA) personalizzata in AKS. L'ultima API di anteprima che supporta questa proprietà è 2025-08-02-preview. I pool di nodi esistenti che si basano ancora su enableCustomCATrust=true potrebbero subire errori durante le operazioni di ridimensionamento o quando i certificati vengono aggiornati. Per evitare interruzioni del servizio, aggiornare i cluster e i pool di nodi interessati e rimuovere la proprietà di anteprima prima del 14 settembre 2026. Per la procedura di migrazione, vedere enableCustomCATrust Migrazione del ritiro (anteprima). Per altre informazioni su questo ritiro, vedere il problema relativo al ritiro di GitHub. Per rimanere informati su annunci e aggiornamenti, segui le note sulla versione di AKS.

Aggiornare i pool di nodi per rimuovere la proprietà Trust ca personalizzata

az aks nodepool update \
  --resource-group <resource-group> \
  --cluster-name <cluster-name> \
  --name <node-pool-name> \
  --disable-custom-ca-trust

Aggiorna i cluster per rimuovere la proprietà Custom CA Trust

az aks update \
  --resource-group <resource-group> \
  --name <cluster-name> \
  --disable-custom-ca-trust

Se si vuole abilitare l'attendibilità CA personalizzata nei cluster dopo il ritiro, usare --custom-ca-trust-certificates e fornire un percorso a un file di certificato.

Per altre informazioni sulle procedure consigliate per la sicurezza del servizio Azure Kubernetes, vedere Procedure consigliate per la sicurezza e gli aggiornamenti del cluster nel servizio Azure Kubernetes (AKS).