Kubernetes intern CA
Når FoxIDs er deployed i Kubernetes og udgående trafik er routed gennem en proxy der terminerer TLS og genudsteder certifikater fra en intern root CA, skal FoxIDs containere have tillid til den root CA.
Denne konfiguration gælder kun for udgående HTTPS trafik fra FoxIDs og FoxIDs Control pods, såsom kald til eksterne services gennem proxyen. Den påvirker ikke hvordan indgående TLS trafik termineres.
Trinene nedenfor beskriver den enkleste konfiguration, som ikke kræver nogen ændringer af container images.
1) Opret en bundle fil (PEM) der indeholder de interne roots
Hvis du allerede har en kombineret bundle, så brug den. Ellers sammensæt de interne root certifikater til én PEM fil og opret 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
(Brug en Secret i stedet for en ConfigMap hvis roots er private.)
2) Mount bundlen og sæt SSL_CERT_FILE i begge deployments
Opdater Kubernetes/k8s-foxids-deployment.yaml og tilføj volume, mount og environment variable i begge 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
Vigtige bemærkninger for .NET / ASP.NET
Hvis containerne skal tilgå offentlige services, kan brug af en CA bundle der kun indeholder private root certifikater bryde disse kald, fordi den erstatter den standard system trust store.
I så fald bør du enten:
- Oprette en kombineret CA bundle der inkluderer både offentlige og private root certifikater og mounte den (anbefalet).
- Udvide system trust store inde i container image i stedet for at bruge
SSL_CERT_FILE.
Sådan opretter du en kombineret bundle (offentlig + privat)
Den sikreste tilgang er at beholde den eksisterende offentlige trust store og tilføje dine interne root certifikater. Start med den offentlige CA bundle fra FoxIDs container base image, tilføj dine interne roots, og mount den resulterende kombinerede bundle med SSL_CERT_FILE.
Eksempel (stien kan variere afhængigt af base image; verificer 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
Brug samme volume mount og SSL_CERT_FILE konfiguration som beskrevet i trin 2, men peg den til combined-roots.pem.