Kubernetes internal CA

Cuando FoxIDs se implementa en Kubernetes y el tráfico saliente se enruta a través de un proxy que termina TLS y vuelve a emitir certificados desde una CA raíz interna, los contenedores FoxIDs deben confiar en esa CA raíz.

Esta configuración solo se aplica al tráfico HTTPS saliente de los pods FoxIDs y FoxIDs Control, como llamadas a servicios externos a través del proxy. No afecta a cómo se termina el tráfico TLS entrante.

Los pasos siguientes describen la configuración más simple, que no requiere ninguna modificación en las imágenes de contenedor.

1) Crear un archivo bundle (PEM) que contenga las raíces internas

Si ya tienes un bundle combinado, úsalo. De lo contrario, concatena los certificados de las raíces internas en un solo archivo PEM y crea un 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 en lugar de un ConfigMap si las raíces son privadas.)

2) Montar el bundle y establecer SSL_CERT_FILE en ambos despliegues

Actualiza Kubernetes/k8s-foxids-deployment.yaml y agrega el volumen, el montaje y la variable de entorno en ambos despliegues.

Despliegue de FoxIDs:

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

Despliegue de FoxIDs Control:

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

Si los contenedores necesitan acceder a servicios públicos, usar un bundle de CA que contenga solo certificados raíz privados puede romper esas llamadas, porque reemplaza el almacén de confianza del sistema predeterminado.

En ese caso, debes:

  • Crear un bundle de CA combinado que incluya certificados raíz públicos y privados, y montarlo (recomendado).
  • Extender el almacén de confianza del sistema dentro de la imagen del contenedor en lugar de usar SSL_CERT_FILE.

How to create a combined bundle (public + private)

El enfoque más seguro es conservar el almacén de confianza público existente y añadir tus certificados raíz internos. Empieza con el bundle de CA público de la imagen base del contenedor FoxIDs, añade tus raíces internas y monta el bundle combinado resultante usando SSL_CERT_FILE.

Ejemplo (la ruta puede variar según la imagen base; verifícala dentro de tu contenedor):

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 misma configuración de montaje del volumen y de SSL_CERT_FILE descrita en el paso 2, pero apuntando a combined-roots.pem.

Tu privacidad

Usamos cookies para mejorar tu experiencia en nuestros sitios web. Haz clic en «Aceptar todas las cookies» para aceptar su uso. Para rechazar cookies no esenciales, haz clic en «Solo cookies necesarias».

Visita nuestra política de privacidad para saber más