Folosește cineva lanțurile de certificate proprii pentru clusterele Kubernetes?
Există o problemă cu un astfel de tip de configurare și aș fi recunoscător pentru orice idee despre cum să o rezolv.
Să presupunem că avem un CA rădăcină al cărui certificat este autosemnat. De asemenea, avem un CA intermediar, certificat semnat de CA rădăcină. Facem un lanț de certificare (prin concatenarea ambelor containere PEM într-un singur fișier) și configuram Kubernetes cu asta. Aproape totul funcționează perfect: Kubernetes funcționează bine, clienții Kubernetes funcționează bine, operatorii Kubernetes funcționează bine... Viața este bună.
Dar există un lucru de care trebuie să ținem cont. Toate Secret
obiect care conține jetoane de securitate pentru Service Account
obiectele au versiuni „scurtate” ale certificatului CA. Versiunea „scurtată” nu conține certificatul Root CA, ci doar cel Intermediar.
După cum văd, pentru majoritatea bibliotecilor TLS este suficient. O bucată de software stabilește o conexiune TLS cu serverul API Kubernetes, se asigură că certificatul serverului este semnat de un CA de încredere (presupunând că certificatul CA intermediar care este obținut de la Secret
este de încredere) și totul funcționează fără probleme.
Dar uneori avem o problemă.Când avem o bucată de software (de exemplu, un operator Kubernetes sau orice alt program care trebuie să comunice cu Kubernetes API Server) care folosește o bibliotecă TLS puțin mai strictă - avem probleme. În acest caz trebuie să furnizăm acestui instrument versiunea lanțului de certificare (conținând atât certificatul CA Intermediar, cât și cel Root), deoarece versiunea „scurtată” care este furnizată de Kubernetes nu este suficientă. Și este în regulă dacă putem oferi acestui instrument întregul lanț de certificate, dar uneori nu este posibil, așa că este nevoie de certificatul CA „scurtat” de la /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
și nu este ușor să-l convingi să ia certificatul CA din altă sursă. :-(
Întrebarea mea este următoarea: există vreo modalitate de a face Kubernetes să creeze acestea Secret
obiecte cu versiunea completă a lanțului de certificare? Și dacă există, va cauza un alt tip de dificultăți (de exemplu, dacă software-ul care va fi furnizat cu lanțul complet va avea probleme)? Sau, poate, ar putea exista o altă soluție?
Mulțumesc anticipat.