Zum Hauptinhalt springen
Version: Weekly Build

Optionen für die Cluster-Ingress-CA

Codesphere unterstützt jetzt mehrere Optionen zum Ausstellen und Verwalten der Cluster-Ingress-CA, die zum Signieren von Zertifikaten für den gesamten Ingress-Traffic innerhalb des Clusters verwendet wird. Diese Flexibilität ermöglicht die Auswahl des besten Ansatzes für die Sicherheits- und Betriebsanforderungen der jeweiligen Organisation.

Verfügbare Issuer-Optionen

OptionBeschreibungBeispielhaftes Einsatzszenario
Self-Signed (Standard)Erzeugt lokal eine neue selbstsignierte CA.Schneller Einstieg, Test oder wenn keine Organisations-CA verfügbar ist.
Organisations-CAVerwendet die vorhandene CA oder Zwischen-CA der Organisation zum Signieren von Ingress-Zertifikaten.Enterprise-Umgebungen mit zentraler CA-Verwaltung.
Externer IssuerIntegration mit einer externen Zertifizierungsstelle (z. B. HashiCorp Vault, AWS PCA, Let's Encrypt).Automatisierte Zertifikatsverwaltung, Cloud-native Umgebungen.

Konfiguration

In der config.yaml kann der Zertifikats-Issuer über die Option codesphere.certIssuer ausgewählt werden. Der Legacy-Block cluster.certificates.ca wird für Self-Signed und Organisations-CA verwendet, während externe Issuer über codesphere.certIssuer konfiguriert werden.

Self-Signed oder Organisations-CA:

codesphere:
certIssuer:
type: self-signed
cluster:
certificates:
ca:
algorithm: RSA # oder ECDSA
keySizeBits: 2048 # oder 4096 usw.
certPem: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

certIssuer-Optionen:

Das Feld codesphere.certIssuer unterstützt die folgenden Typen:

  • self-signed: Verwendet eine selbstsignierte CA (Standard, keine ACME-Integration)
  • acme: Verwendet das ACME-Protokoll (z. B. Let's Encrypt) für automatisierte Zertifikatsverwaltung

Für ACME müssen die ACME-Server-URL, die eigene E-Mail-Adresse und optional eine EAB-Key-ID (External Account Binding) angegeben werden. Der ACME-Private-Key und der EAB-Key sind Secrets und müssen der SOPS-Vault-Konfiguration hinzugefügt werden.

Beispiel: Self-Signed

codesphere:
certIssuer:
type: self-signed
cluster:
certificates:
ca:
algorithm: RSA # oder ECDSA
keySizeBits: 2048 # oder 4096 usw.
certPem: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

Anforderungen an SOPS-Vault-Secrets für Self-Signed CA:

  • Der Private Key für die selbstsignierte CA muss im SOPS-Vault (prod.vault.yaml) unter dem Schlüssel selfSignedCaKeyPem gespeichert werden.

Beispiel SOPS-Vault-Eintrag:

secrets:
- name: selfSignedCaKeyPem
file:
name: ca.key
content: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

Beispiel: ACME (Let's Encrypt, mit Cloudflare-DNS-Solver)

codesphere:
certIssuer:
type: acme
acme:
server: https://acme-v02.api.letsencrypt.org/directory
eabKeyId: <optionale-eab-key-id>
cluster:
certificates:
override:
issuers:
acme:
# Konfiguration des DNS-Solvers (Override in der Deployment-Konfiguration):
dnsSolver:
cloudflare:
apiTokenSecretRef:
name: acme-solver
key: api-token
solverSecret:
name: acme-solver
data:
api-token: <api-token>

Anforderungen an SOPS-Vault-Secrets für ACME:

  • Der EAB-MAC-Key (falls verwendet) muss unter dem Schlüssel acmeEabMacKey gespeichert werden.

Beispiel SOPS-Vault-Eintrag:

secrets:
- name: acmeEabMacKey
fields:
key: <eigener-eab-mac-key>

Hinweis:

  • Die DNS-Solver-Konfiguration muss als Override in der Deployment-Konfiguration hinzugefügt werden, passend zum jeweiligen DNS-Provider (z. B. Cloudflare, Route53 usw.).
  • Für Cloudflare werden apiTokenSecretRef und solverSecret wie oben gezeigt verwendet.

Hinweis:

  • Für Self-Signed und Organisations-CA müssen sowohl der Private Key als auch die Zertifikats-PEM-Blöcke angegeben werden.
  • Bei externen Issuern hängen die Integrationsfelder vom jeweiligen externen CA-Provider ab. Die erforderlichen Felder sind der Dokumentation des jeweiligen Providers zu entnehmen.

Die richtige Option wählen

  • Self-Signed: Am einfachsten einzurichten, allerdings muss das Vertrauen an alle Benutzer/Geräte verteilt werden.
  • Organisations-CA: Empfohlen für Produktion und Enterprise-Einsatz, nutzt die vorhandene Vertrauensinfrastruktur.
  • Externer Issuer: Am besten geeignet für automatisierte Zertifikatsverwaltung und Cloud-native Workflows.