Kubernetes interne CA

Wanneer FoxIDs in Kubernetes is gedeployed en uitgaand verkeer via een proxy loopt die TLS beëindigt en certificaten opnieuw uitgeeft vanuit een interne root CA, moeten de FoxIDs containers die root CA vertrouwen.

Deze configuratie geldt alleen voor uitgaand HTTPS verkeer vanuit de FoxIDs en FoxIDs Control pods, zoals calls naar externe services via de proxy. Het heeft geen invloed op hoe inkomend TLS verkeer wordt beëindigd.

De onderstaande stappen beschrijven de eenvoudigste configuratie, die geen wijzigingen aan de container images vereist.

1) Maak een bundelbestand (PEM) met de interne roots

Als je al een gecombineerde bundel hebt, gebruik die dan. Anders concateneer je de interne root certificaten in één PEM bestand en maak je een 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

(Use a Secret instead of a ConfigMap if the roots are private.)

2) Mount de bundel en zet SSL_CERT_FILE in beide deployments

Werk Kubernetes/k8s-foxids-deployment.yaml bij en voeg de volume, mount en environment variable toe in beide 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

Belangrijke opmerkingen voor .NET / ASP.NET

Als de containers toegang moeten hebben tot publieke services, kan het gebruik van een CA bundel die alleen private root certificaten bevat die calls breken, omdat die de standaard system trust store vervangt.

In dat geval kun je:

  • Een gecombineerde CA bundel maken die zowel publieke als private root certificaten bevat en die mounten (aanbevolen).
  • De system trust store uitbreiden binnen de container image in plaats van SSL_CERT_FILE te gebruiken.

Hoe je een gecombineerde bundel maakt (publiek + privé)

De veiligste aanpak is om de bestaande publieke trust store te behouden en je interne root certificaten toe te voegen. Begin met de publieke CA bundel uit het FoxIDs container base image, voeg je interne roots toe en mount de resulterende gecombineerde bundel met SSL_CERT_FILE.

Voorbeeld (het pad kan variëren afhankelijk van het base image; controleer dit in je 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

Gebruik dezelfde volume mount en SSL_CERT_FILE configuratie zoals beschreven in stap 2, maar wijs naar combined-roots.pem.

Uw privacy

We gebruiken cookies om uw ervaring op onze websites te verbeteren. Klik op de knop 'Alle cookies accepteren' om akkoord te gaan met het gebruik van cookies. Om niet-noodzakelijke cookies te weigeren, klikt u op 'Alleen noodzakelijke cookies'.

Bezoek onze privacyverklaring voor meer informatie