# Certyfikat dla wejścia do aplikacji (PRE-16). # # Dlaczego WŁASNE CA, a nie Let's Encrypt: klaster stoi w LAN (traefik trzyma # LoadBalancera na 192.168.1.x), więc walidacja HTTP-01 nie ma jak dojść z # internetu, a DNS-01 wymagałby trzymania w klastrze tokena API do domeny. # Własne CA nie potrzebuje niczego z zewnątrz, a certyfikaty odnawia samo. # # WYMAGANIE WSTĘPNE: cert-manager musi być w klastrze PRZED synchronizacją tego # katalogu — inaczej API odrzuci poniższe obiekty jako nieznane rodzaje zasobów. # Instalacja jednorazowa: patrz README.md. # # Wszystko jest w namespace `astrololo` (Issuer, nie ClusterIssuer) świadomie: # ArgoCD ma tu włączone `prune`, a zasoby o zasięgu całego klastra chcemy trzymać # poza aplikacją, która może zostać skasowana. --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: selfsigned namespace: astrololo spec: selfSigned: {} --- # Korzeń zaufania. TO JEST certyfikat, który raz importujesz do przeglądarki # i systemu — patrz README. Stąd długi termin ważności: importu nie chcemy # powtarzać co kwartał. apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: astrololo-ca namespace: astrololo spec: isCA: true commonName: astrololo internal CA secretName: astrololo-ca # tu lądują klucz i certyfikat korzenia duration: 87600h # 10 lat renewBefore: 8760h # odnowienie na rok przed końcem privateKey: { algorithm: ECDSA, size: 256 } issuerRef: { name: selfsigned, kind: Issuer, group: cert-manager.io } --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: astrololo-ca namespace: astrololo spec: ca: { secretName: astrololo-ca } --- # Właściwy certyfikat serwera. Krótki termin CELOWO: przy 90 dniach odnawianie # jest sprawdzane w praktyce co kwartał, więc awaria wyjdzie od razu, a nie za # dziesięć lat, gdy nikt już nie będzie pamiętał, jak to działa. apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: astrololo-tls namespace: astrololo spec: secretName: astrololo-tls # tego szuka Ingress commonName: astrololo.czernobog.pl dnsNames: - astrololo.czernobog.pl duration: 2160h # 90 dni renewBefore: 720h # 30 dni zapasu privateKey: { algorithm: ECDSA, size: 256, rotationPolicy: Always } issuerRef: { name: astrololo-ca, kind: Issuer, group: cert-manager.io }