Wewnętrzny CA w Kubernetes

Gdy FoxIDs jest wdrożony w Kubernetes, a ruch wychodzący jest kierowany przez proxy, które kończy TLS i ponownie wystawia certyfikaty z wewnętrznego głównego CA, kontenery FoxIDs muszą ufać temu głównemu CA.

Ta konfiguracja dotyczy wyłącznie ruchu HTTPS wychodzącego z podów FoxIDs i FoxIDs Control, np. wywołań usług zewnętrznych wykonywanych przez proxy. Nie wpływa na sposób zakończenia TLS dla ruchu przychodzącego.

Poniższe kroki opisują najprostszą konfigurację, która nie wymaga żadnych modyfikacji obrazów kontenerów.

1) Utwórz plik pakietu (PEM) zawierający wewnętrzne rooty

Jeśli masz już połączony pakiet, użyj go. W przeciwnym razie połącz wewnętrzne certyfikaty root w jeden plik PEM i utwórz 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

(Użyj Secret zamiast ConfigMap, jeśli rooty są prywatne.)

2) Zamontuj pakiet i ustaw SSL_CERT_FILE w obu wdrożeniach

Zaktualizuj Kubernetes/k8s-foxids-deployment.yaml i dodaj wolumen, mount oraz zmienną środowiskową w obu wdrożeniach.

Wdrożenie 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

Wdrożenie 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

Ważne uwagi dla .NET / ASP.NET

Jeśli kontenery muszą uzyskiwać dostęp do usług publicznych, użycie pakietu CA zawierającego tylko prywatne certyfikaty root może zepsuć te wywołania, ponieważ zastępuje domyślny magazyn zaufania systemu.

W takim przypadku:

  • Utwórz połączony pakiet CA zawierający zarówno publiczne, jak i prywatne certyfikaty root i zamontuj go (zalecane).
  • Rozszerz systemowy magazyn zaufania wewnątrz obrazu kontenera zamiast używać SSL_CERT_FILE.

Jak utworzyć połączony pakiet (publiczny + prywatny)

Najbezpieczniejsze podejście to zachować istniejący publiczny magazyn zaufania i dopisać wewnętrzne certyfikaty root. Zacznij od publicznego pakietu CA z obrazu bazowego kontenera FoxIDs, dodaj wewnętrzne rooty i zamontuj wynikowy pakiet połączony z użyciem SSL_CERT_FILE.

Przykład (ścieżka może się różnić w zależności od obrazu bazowego; zweryfikuj ją w kontenerze):

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

Użyj tego samego montowania wolumenu i konfiguracji SSL_CERT_FILE jak w kroku 2, ale wskaż combined-roots.pem.

Twoja prywatność

Używamy plików cookie, aby poprawić korzystanie z naszych stron internetowych. Kliknij przycisk „Akceptuj wszystkie pliki cookie”, aby wyrazić zgodę na ich użycie. Aby zrezygnować z nieistotnych plików cookie, kliknij „Tylko niezbędne pliki cookie”.

Odwiedź naszą politykę prywatności, aby dowiedzieć się więcej