Kubernetes internal CA

Quando FoxIDs viene distribuito in Kubernetes e il traffico in uscita viene instradato attraverso un proxy che termina TLS e riemette certificati da una internal root CA, i container FoxIDs devono considerare affidabile quella root CA.

Questa configurazione si applica solo al traffico HTTPS in uscita dai pod FoxIDs e FoxIDs Control, ad esempio chiamate a servizi esterni effettuate attraverso il proxy. Non influisce su come il traffico TLS in ingresso viene terminato.

I passaggi seguenti descrivono la configurazione piu semplice, che non richiede modifiche alle container images.

1) Create a bundle file (PEM) containing the internal roots

Se hai gia un bundle combinato, usalo. Altrimenti concatena i certificati root interni in un file PEM e crea una ConfigMap:

cat root1.crt root2.crt root3.crt > extra-roots.pem
kubectl -n <foxids-namespace> create configmap foxids-extra-ca --from-file=extra-roots.pem

Usa un Secret invece di una ConfigMap se le root sono private.

2) Mount the bundle and set SSL_CERT_FILE in both deployments

Aggiorna Kubernetes/foxids-deployment.yaml e aggiungi volume, mount e variabile di ambiente in entrambi i deployment.

FoxIDs deployment:

spec:
  template:
    spec:
      volumes:
        - name: extra-ca
          configMap:
            name: foxids-extra-ca
            items:
              - key: extra-roots.pem
                path: extra-roots.pem
      containers:
        - name: foxids
          volumeMounts:
            - name: extra-ca
              mountPath: /etc/ssl/certs/extra-roots.pem
              subPath: extra-roots.pem
          env:
            - name: SSL_CERT_FILE
              value: /etc/ssl/certs/extra-roots.pem

FoxIDs Control deployment:

spec:
  template:
    spec:
      volumes:
        - name: extra-ca
          configMap:
            name: foxids-extra-ca
            items:
              - key: extra-roots.pem
                path: extra-roots.pem
      containers:
        - name: foxids-control
          volumeMounts:
            - name: extra-ca
              mountPath: /etc/ssl/certs/extra-roots.pem
              subPath: extra-roots.pem
          env:
            - name: SSL_CERT_FILE
              value: /etc/ssl/certs/extra-roots.pem

Important notes for .NET / ASP.NET

Se i container devono accedere a servizi pubblici, usare un CA bundle che contiene solo certificati root privati puo interrompere quelle chiamate, perche sostituisce il trust store di sistema predefinito.

In tal caso dovresti:

  • Creare un CA bundle combinato che includa sia certificati root pubblici sia privati e montarlo, soluzione raccomandata.
  • Estendere il trust store di sistema all'interno della container image invece di usare SSL_CERT_FILE.

How to create a combined bundle (public + private)

L'approccio piu sicuro e mantenere il trust store pubblico esistente e aggiungere i certificati root interni. Parti dal CA bundle pubblico della base image del container FoxIDs, aggiungi le root interne e monta il bundle combinato risultante usando SSL_CERT_FILE.

Esempio, il path puo variare a seconda della base image; verificalo all'interno del tuo container:

cat /etc/ssl/certs/ca-certificates.crt extra-roots.pem > combined-roots.pem
kubectl -n <foxids-namespace> create configmap foxids-extra-ca --from-file=combined-roots.pem

Usa la stessa configurazione di volume mount e SSL_CERT_FILE descritta nel passaggio 2, ma puntandola a combined-roots.pem.

La tua privacy

La tua privacy

Usiamo i cookie per migliorare la tua esperienza sui nostri siti. Fai clic sul pulsante 'Accetta tutti i cookie' per acconsentire all'uso dei cookie. Per rifiutare i cookie non essenziali, fai clic su 'Solo cookie necessari'.

Visita la nostra pagina di Informativa sulla privacy per saperne di più