Zum Hauptinhalt springen
Version: 1.89.x (Q2 26)

CA-Optionen für Cluster Ingress

Codesphere unterstützt nun 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 es, den Ansatz zu wählen, der am besten zu den Sicherheits- und Betriebsanforderungen der jeweiligen Organisation passt.

Verfügbare Issuer-Optionen

OptionBeschreibungBeispiel-Anwendungsfall
Self-Signed (Standard)Erzeugt lokal eine neue selbstsignierte CA.Schnellstart, Test oder wenn keine Org-CA verfügbar ist.
Organization CAVerwendet die bestehende CA oder Intermediate-CA der eigenen Organisation zum Signieren der Ingress-Zertifikate.Enterprise-Umgebungen mit zentraler CA-Verwaltung.
External 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 Organization-CA verwendet, während externe Issuer über codesphere.certIssuer konfiguriert werden.

Self-Signed oder Organization CA:

codesphere:
certIssuer:
type: self-signed
cluster:
certificates:
ca:
algorithm: RSA # or ECDSA
keySizeBits: 2048 # or 4096, etc.
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 # or ECDSA
keySizeBits: 2048 # or 4096, etc.
certPem: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

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

  • Der Private Key für die selbstsignierte CA muss in der 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: <optional-eab-key-id>
cluster:
certificates:
override:
issuers:
acme:
# DNS Solver configuration (override in your deployment config):
dnsSolver:
cloudflare:
apiTokenSecretRef:
name: acme-solver
key: api-token
solverSecret:
name: acme-solver
data:
api-token: <api-token>

Anforderungen an das SOPS-Vault-Secret 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: <your-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 apiTokenSecretRef und solverSecret wie oben gezeigt verwenden.

Hinweis:

  • Für Self-Signed- und Organization-CA müssen sowohl der Private-Key- als auch der Zertifikats-PEM-Block 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 auf alle Nutzer/Geräte verteilt werden.
  • Organization CA: Empfohlen für Produktion und Enterprise-Umgebungen, nutzt bestehende Vertrauensinfrastruktur.
  • External Issuer: Am besten geeignet für automatisierte Zertifikatsverwaltung und cloud-native Workflows.