Kubernetes intern CA

När FoxIDs är deployad i Kubernetes och utgående trafik routas genom en proxy som terminerar TLS och återutfärdar certifikat från en intern root CA, måste FoxIDs containrar lita på den root CA.

Denna konfiguration gäller endast för utgående HTTPS trafik från FoxIDs och FoxIDs Control pods, såsom anrop till externa tjänster genom proxyn. Den påverkar inte hur inkommande TLS trafik termineras.

Stegen nedan beskriver den enklaste konfigurationen som inte kräver några ändringar av container images.

1) Skapa en bundle fil (PEM) som innehåller de interna roots

Om du redan har en kombinerad bundle, använd den. Annars, slå ihop de interna root certifikaten till en PEM fil och skapa en 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

(Använd en Secret istället för en ConfigMap om roots är privata.)

2) Mounta bundlen och sätt SSL_CERT_FILE i båda deployments

Uppdatera Kubernetes/k8s-foxids-deployment.yaml och lägg till volume, mount och environment variable i båda deployments.

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

Viktiga anmärkningar för .NET / ASP.NET

Om containrarna behöver nå publika tjänster kan användning av en CA bundle som endast innehåller privata root certifikat bryta dessa anrop eftersom den ersätter standard system trust store.

I så fall bör du antingen:

  • Skapa en kombinerad CA bundle som inkluderar både publika och privata root certifikat och mounta den (rekommenderat).
  • Utöka system trust store inne i container image istället för att använda SSL_CERT_FILE.

Så skapar du en kombinerad bundle (publik + privat)

Det säkraste är att behålla den befintliga publika trust store och lägga till dina interna root certifikat. Börja med den publika CA bundlen från FoxIDs container base image, lägg till dina interna roots och mounta den resulterande kombinerade bundlen med SSL_CERT_FILE.

Exempel (sökvägen kan variera beroende på base image; verifiera den i din 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

Använd samma volume mount och SSL_CERT_FILE konfiguration som i steg 2 men peka till combined-roots.pem.

Din integritet

Vi använder cookies för att göra din upplevelse av våra webbplatser bättre. Klicka på 'Acceptera alla cookies' för att godkänna användningen av cookies. För att avstå från icke-nödvändiga cookies, klicka på 'Endast nödvändiga cookies'.

Besök vår integritetspolicy för mer