Kubernetes internal CA

Quando o FoxIDs e distribuido em Kubernetes e o trafego de saida e encaminhado atraves de um proxy que termina TLS e reemite certificados a partir de uma internal root CA, os containers do FoxIDs devem confiar nessa root CA.

Esta configuracao aplica-se apenas ao trafego HTTPS de saida dos pods FoxIDs e FoxIDs Control, como chamadas a servicos externos feitas atraves do proxy. Nao afeta a forma como o trafego TLS de entrada e terminado.

Os passos abaixo descrevem a configuracao mais simples, que nao requer quaisquer alteracoes as container images.

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

Se ja tiver um bundle combinado, use-o. Caso contrario, concatene os certificados root internos num unico ficheiro PEM e crie uma 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 um Secret em vez de uma ConfigMap se as roots forem privadas.

2) Mount the bundle and set SSL_CERT_FILE in both deployments

Atualize Kubernetes/foxids-deployment.yaml e adicione o volume, o mount e a variavel de ambiente em ambos os 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

Important notes for .NET / ASP.NET

Se os containers precisarem de aceder a servicos publicos, usar um CA bundle que contenha apenas certificados root privados pode quebrar essas chamadas, porque substitui o trust store do sistema predefinido.

Nesse caso, deve:

  • Criar um CA bundle combinado que inclua certificados root publicos e privados e monta-lo, opcao recomendada.
  • Estender o trust store do sistema dentro da container image em vez de usar SSL_CERT_FILE.

How to create a combined bundle (public + private)

A abordagem mais segura e manter o trust store publico existente e acrescentar os seus certificados root internos. Comece com o CA bundle publico da base image do container FoxIDs, adicione as suas roots internas e monte o bundle combinado resultante usando SSL_CERT_FILE.

Exemplo, o path pode variar consoante a base image; verifique-o dentro do seu 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

Use a mesma configuracao de volume mount e SSL_CERT_FILE descrita no passo 2, mas apontando para combined-roots.pem.

A sua privacidade

A sua privacidade

Usamos cookies para melhorar a sua experiência nos nossos sites. Clique no botão 'Aceitar todos os cookies' para concordar com a utilização de cookies. Para recusar cookies não essenciais, clique em 'Apenas cookies necessários'.

Visite a nossa página de Política de Privacidade para saber mais