Skip to content

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:

TypNameWert
A*.janus.ciss.digital89.58.27.247
Ajanus.ciss.digital89.58.27.247
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
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"]

Zwei Cluster Issuer verfügbar:

IssuerTypNutzung
letsencrypt-stagingLet’s Encrypt StagingTests (keine Rate-Limits)
letsencrypt-prodLet’s Encrypt ProductionProduktivbetrieb
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test
namespace: test
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
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: 80
Terminal window
# Zertifikate prüfen
k3s kubectl get certificate -A
# Zertifikat-Details
k3s kubectl describe certificate test-tls -n test
# TLS-Verbindung testen
curl -vI https://test.janus.ciss.digital