DNS & TLS
Automatische DNS-Auflösung und TLS-Verschlüsselung für alle auf Janus gehosteten Dienste.
Wildcard-DNS-Eintrag leitet alle Subdomains an Janus weiter:
| Typ | Name | Wert |
|---|---|---|
| A | *.janus.ciss.digital | 89.58.27.247 |
| A | janus.ciss.digital | 89.58.27.247 |
TLS-Flow
Section titled “TLS-Flow”sequenceDiagram
participant Client as Browser
participant Ingress as ingress-nginx
participant Cert as cert-manager
participant LE as Let's Encrypt
Client->>Ingress: HTTPS-Anfrage<br/>test.janus.ciss.digital
Ingress->>Cert: Zertifikat angefordert
Cert->>LE: HTTP-01 Challenge
Note over LE,Ingress: LE sendet Request an<br/>http://test.janus.ciss.digital/.well-known/acme-challenge/
Ingress-->>LE: Challenge-Response
LE-->>Cert: Zertifikat ausgestellt
Cert-->>Ingress: TLS-Zertifikat gespeichert
Ingress-->>Client: HTTPS-Antwort mit Zertifikat
TLS-Pipeline
Section titled “TLS-Pipeline”graph LR
subgraph CertManager ["cert-manager"]
Issuer["ClusterIssuer"]
Order["Certificate<br/>Order"]
Challenge["Challenge<br/>Solver"]
Cert["TLS Secret<br/>(Kubernetes)"]
end
subgraph External ["Extern"]
LE["Let's Encrypt<br/>ACME CA"]
end
Issuer -->|"erstellt"| Order
Order -->|"löst"| Challenge
Challenge -->|"HTTP-01"| LE
LE -->|"signiert"| Cert
Cert -->|"mount"| Ingress["Ingress-nginx"]
Cluster Issuer
Section titled “Cluster Issuer”Zwei Cluster Issuer verfügbar:
| Issuer | Typ | Nutzung |
|---|---|---|
letsencrypt-staging | Let’s Encrypt Staging | Tests (keine Rate-Limits) |
letsencrypt-prod | Let’s Encrypt Production | Produktivbetrieb |
Ingress-Beispiel
Section titled “Ingress-Beispiel”apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: test namespace: test annotations: cert-manager.io/cluster-issuer: letsencrypt-prodspec: ingressClassName: nginx tls: - hosts: - test.janus.ciss.digital secretName: test-tls rules: - host: test.janus.ciss.digital http: paths: - path: / pathType: Prefix backend: service: name: test port: number: 80Verifikation
Section titled “Verifikation”# Zertifikate prüfenk3s kubectl get certificate -A
# Zertifikat-Detailsk3s kubectl describe certificate test-tls -n test
# TLS-Verbindung testencurl -vI https://test.janus.ciss.digital