feat(astrololo): HTTPS + szyfrowanie łączy między warstwami (PRE-16) #4
Reference in New Issue
Block a user
Delete Branch "feat/tls-ingress"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Domyka PRE-16 po stronie manifestów: HTTPS na wejściu oraz klucze do
szyfrowania łączy między warstwami. Kod aplikacyjny: astrololo#21.
Instrukcja krok po kroku (oba PR-y):
docs/wdrozenie-pre16.mdw repo astrololo.HTTPS na wejściu
Aplikacja chodziła po http, logowanie przez HTTP Basic — hasło do podsłuchania
(base64 to nie szyfrowanie). TLS naprawia przy okazji dwie funkcje zepsute
z tego samego powodu: geolokalizacja i schowek działają wyłącznie w secure context.
tls.yaml—Issuer selfSigned→ korzeń CA (10 lat, importowany raz) →Issuer CA→ certyfikat serwera (90 dni, odnawiany sam). Własne CA, nieLet's Encrypt, bo klaster jest w LAN (Traefik LB na 192.168.1.x) — HTTP-01 nie
dojdzie, DNS-01 wymagałby tokena do domeny w klastrze.
ingress.yaml— wejście po https + HSTS/nosniff/frameDeny oraz osobnyIngress na :80 robiący przekierowanie (na jednym routerze odsyłałby sam do
siebie w kółko).
presentation—NodePort→ClusterIP. NodePort był drugą, nieszyfrowanądrogą do aplikacji, czyli obejściem całego PRE-16.
Szyfrowanie łączy — sekret
astrololo-linkLINK_KEY_PRESENTATION_LOGIC,LINK_KEY_LOGIC_DATA. Osobnecelowo — przejęcie klucza prezentacji nie otwiera warstwy danych. Logika bierze
oba, prezentacja i dane wyłącznie swój (
secretKeyRef).LINK_ENCRYPTION_REQUIRED=truewe wszystkich trzech: bez klucza pod niewstaje, a klient nie wysyła niczego. Fail-closed w obie strony jest zamierzony
— usługa, która wstała i po cichu nie szyfruje, jest gorsza niż CrashLoop, bo
awarii nie widać.
TRUST_PROXY=truena prezentacji — żeby limit żądań liczył realnych klientówzza Ingressu, nie pod Traefika (patrz astrololo#21).
⚠️ Trzy kroki PRZED mergem (kolejność w instrukcji)
astrololo-link— inaczej pody wpadną w CrashLoop (fail-closed),v1.21.0— inaczej API odrzuciCertificate/Issuer,astrololo.czernobog.pl→ adres Traefika — bo NodePort znika.Sprawdzone
kubectl apply --dry-run=serverna żywym klastrze(CRD
traefik.io/v1alpha1są, entrypointyweb/websecure, referencjemiddleware rozwiązują się).
z
additionalProperties=false— sprawdzona literówkąrenewBefor, którą łapie.kubectl kustomize+--dry-run=serverprzechodzą dla obu profili(bazowego i
astrololo-swisseph).feat(astrololo): wejście po https z własnym CA (PRE-16)to feat(astrololo): HTTPS + szyfrowanie łączy między warstwami (PRE-16)View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.