Ilmus cert-manager 1.0

Kui kĂŒsida kogenud mitme nutikuse insenerilt, mida ta arvab cert-managerist ja miks kĂ”ik seda kasutavad, siis spetsialist ohkab, embab usalduslikult ja vĂ€sinult ĂŒtleb: „KĂ”ik kasutavad seda, kuna ei ole normaalset alternatiivi. Meie hiired nutavad, torkavad, kuid elavad selle kaktuse jaoks edasi. Miks armastame? Sest see töötab. Miks ei armasta? Sest pidevalt ilmuvad uued versioonid, mis kasutavad uusi funktsioone. Ja tuleb korduvalt klastrit uuendada. Aga vanad versioonid lĂ”petavad töö, sest seal on complot ja suur salapĂ€rane ĆĄamaanitöö.”

Aga arendajad kinnitavad, et cert-manager 1.0 kÔik muutub.

Kas usume?

Ilmus cert-manager 1.0

Cert-manager on Kubernetes'e „kodune” sertifikaatide haldamise kontroller. Selle abil saab vĂ€lja anda sertifikaate erinevatest allikatest: Let’s Encrypt, HashiCorp Vault, Venafi, allkirjastamiseks mĂ”eldud vĂ”tmete paare ja isesertifitseeritud. See vĂ”imaldab ka hoida vĂ”tmed kehtivad, samuti pĂŒĂŒab automaatselt sertifikaate uuendada mÀÀratud kehtivusaja enne. Cert-manager pĂ”hineb kube-legol ja on kasutanud mĂ”ningaid tehnikaid teistest sarnastest projektidest, nĂ€iteks kube-cert-managerist.

VÀljaande mÀrkused

Versiooniga 1.0 kinnitame usaldust kolme aasta jooksul, mil cert-manager projekti arendati. Selle aja jooksul on see mĂ€rgatavalt arenenud funktsionaalsuse ja stabiilsuse osas, kuid kĂ”ige rohkem — kogukonna poolelt. TĂ€nasel pĂ€eval nĂ€eme, et paljud inimesed kasutavad seda oma Kubernetes klastrite kaitsmiseks ning rakendavad seda erinevates ökosĂŒsteemi osades. Viimastes 16 vĂ€ljaandes on parandatud hulgaliselt vigu. Ja kĂ”ik, mis pidi katki minema — on katki lĂ€inud. Toimingud API-ga on parandanud selle kasutajatega suhtlemist. Oleme lahendanud 1500 probleemi GitHubis koos veelgi enamate ĂŒhendamise taotlustega 253 kogukonna liikmelt.

VĂ€lja andes versiooni 1.0 kinnitame ametlikult, et cert-manager on kĂŒps projekt. Lubame samuti toetada meie API ĂŒhilduvust. v1.

Suur tÀnu kÔikidele, kes meid on aidanud cert-manageri arendamisel kÔik need kolm aastat! Olgu versioon 1.0 esimene paljude tulevaste suurtööde seas.

VÀljaanne 1.0 on stabiilne vÀljaanne, millel on mÔned prioriteetsed suunad:

  • v1 API;

  • Meeskond kubectl cert-manager state, et aidata probleemide analĂŒĂŒsimisel;

  • Kubernetesi uusimate stabiilsete API-de kasutamine;

  • Parandatud logimine;

  • Parandused ACME.

Enne uuenduse tegemist lugege kindlasti uuenduste mÀrkuseid.

API v1

Versioon v0.16 töötas API-ga v1beta1. See tĂ”i kaasa mĂ”ned struktuursed muudatused ning parandas API vĂ€ljade dokumentatsiooni. Versioon 1.0 tugineb sellele kĂ”igile API kaudu v1. See API on meie esimene stabiilne versioon, samas oleme juba taganud ĂŒhilduvuse, kuid API-ga v1 lubame sĂ€ilitada ĂŒhilduvust aastate jooksul.

Tehtud muudatused (mÀrkused: meie konverteerimisvahendid hoolitsevad kÔikide teie eest):

Sertifikaat:

  • emailSANs nĂŒĂŒd nimetatakse emailAddresses

  • uriSANs — uris

Need muudatused lisavad ĂŒhilduvuse teiste SAN-ide (subject alt names, tĂ”lkija mĂ€rk.), samuti Go API-ga. Eemaldame selle termini meie API-st.

Uuendamine

Kui kasutate Kubernetes 1.16+ — konverteerivad webhookid vĂ”imaldavad teil samal ajal ja sujuvalt töötada API versioonidega v1alpha2, v1alpha3, v1beta1 ja v1. Nende abil saate kasutada uut API versiooni, ilma et peaksite muutma vĂ”i uuesti juurutama oma vanu ressursse. Soovitame tungivalt oma manifestide uuendamist API-le v1, kuna varasemad versioonid kuulutatakse peagi vĂ€lja vananenuks. Kasutajad legacy cert-manager versiooniga on endiselt ligipÀÀs ainult v1, uuendamise sammud leiate siit.

Meeskond kubectl cert-manager status

Uute tĂ€iustustega meie laienduses kubectl on lihtsam uurida probleeme, mis on seotud sertifikaatide vĂ€ljaandmisega. kubectl cert-manager state nĂŒĂŒd annab palju rohkem teavet selle kohta, mis sertifikaatidega toimub, samuti nĂ€itab sertifikaadi vĂ€ljaandmise etappe.

PÀrast laienduse installimist saate kÀivitada kubectl cert-manager status certificate, mis otsib mÀÀratletud nimega sertifikaati ja kÔiki seotud ressursse, nÀiteks CertificateRequest, Secret, Issuer, samuti Order ja Challenges, kui kasutatakse ACME sertifikaate.

Kliendi sertifikaadi silumise nÀide:

$ kubectl cert-manager status certificate acme-certificate

Nimi: acme-certificate
Nimekiri: default
Loetud: 2020-08-21T16:44:13+02:00
Olukorrad:
  Valmis: Vale, PÔhjus: EiEksisteeri, Teade: Sertifikaadi andmine kui Saladus ei eksisteeri
  Andmine: TÔsi, PÔhjus: EiEksisteeri, Teade: Sertifikaadi andmine kui Saladus ei eksisteeri
DNS Nimed:
- example.com
SĂŒndmused:
  TĂŒĂŒp    PĂ”hjus      Vanus  Allikas       Teade
  ----    ------      ----  ----          -------
  Normaalne  Andmine    18m   cert-manager  Sertifikaadi andmine kui Saladus ei eksisteeri
  Normaalne  Genereeritud  18m   cert-manager  Uus privaatvÔti salvestati ajutisse Salajasse ressursse "acme-certificate-tr8b2"
  Normaalne  Taotletud  18m   cert-manager  Uus CertificateRequest ressursse "acme-certificate-qp5dm" loodi
Andja:
  Nimi: acme-issuer
  TĂŒĂŒp: Andja
  Olukorrad:
    Valmis: TÔsi, PÔhjus: ACMEAccountRegistered, Teade: ACME konto registreeriti ACME serveris
viga Salajase leidmisel "acme-tls": saladused "acme-tls" ei leitud
Mitte Enne: 
Mitte PĂ€rast: 
Uuendamise Aeg: 
CertificateRequest:
  Nimi: acme-certificate-qp5dm
  Nimekiri: default
  Olukorrad:
    Valmis: Vale, PÔhjus: Ootel, Teade: Ootamine sertifikaadi andmise jÀrele tellimusest default/acme-certificate-qp5dm-1319513028: "ootel"
  SĂŒndmused:
    TĂŒĂŒp    PĂ”hjus        Vanus  Allikas       Teade
    ----    ------        ----  ----          -------
    Normaalne  TellimusLoodud  18m   cert-manager  Tellimuse ressursse default/acme-certificate-qp5dm-1319513028 loodi
Tellimus:
  Nimi: acme-certificate-qp5dm-1319513028
  Oleku: ootel, PÔhjus:
  Volitused:
    URL: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/97777571, Identifikaator: example.com, Algne Oleku: ootel, Wildcard: vale
VĂ€ljakutsed:
- Nimi: acme-certificate-qp5dm-1319513028-1825664779, TĂŒĂŒp: DNS-01, Token: J-lOZ39yNDQLZTtP_ZyrYojDqjutMAJOxCL1AkOEZWw, VĂ”ti: U_W3gGV2KWgIUonlO2me3rvvEOTrfTb-L5s0V1TJMCw, Oleku: ootel, PĂ”hjus: viga clouddns teenuse konto saamisel: saladus "clouddns-accoun" ei leitud, Töötlemine: tĂ”si, Esitletud: vale

Meeskond aitab ka sertifikaadi sisu kohta rohkem teavet saada. Sertifikaadi, mille on vÀlja andnud Letsencrypt, detailide nÀide:

$ kubectl cert-manager status certificate example
Name: example
[...]
Secret:
  Name: example
  Issuer Country: US
  Issuer Organisation: Let's Encrypt
  Issuer Common Name: Let's Encrypt Authority X3
  Key Usage: Digital Signature, Key Encipherment
  Extended Key Usages: Server Authentication, Client Authentication
  Public Key Algorithm: RSA
  Signature Algorithm: SHA256-RSA
  Subject Key ID: 65081d98a9870764590829b88c53240571997862
  Authority Key ID: a84a6a63047dddbae6d139b7a64565eff3a8eca1
  Serial Number: 0462ffaa887ea17797e0057ca81d7ba2a6fb
  Events:  
Not Before: 2020-06-02T04:29:56+02:00
Not After: 2020-08-31T04:29:56+02:00
Renewal Time: 2020-08-01T04:29:56+02:00
[...]

Kubernetesi uusimate stabiilsete API-de kasutamine

Cert-manager oli ĂŒks esimesi, kes rakendas Kubernetes CRD-sid. See, samuti meie toetus Kubernetesi versioonidele kuni 1.11, tĂ€hendas, et pidime toetama aegunud apiextensions.k8s.io/v1beta1 meie CRD-de jaoks, samuti admissionregistration.k8s.io/v1beta1 meie webhookide jaoks. NĂŒĂŒd on need aegunud ja neid eemaldatakse Kubernetesis alates versioonist 1.22. Meie 1.0 versiooniga pakume nĂŒĂŒd tĂ€ielikku toetamist apiextensions.k8s.io/v1 ja admissionregistration.k8s.io/v1 Kubernetes 1.16 jaoks (kus need lisati) ja uuematele. Eelmiste versioonide kasutajatele pakume jĂ€tkuvalt tuge v1beta1 meie legacy versioonis.

Parandatud logimine

Selles versioonis oleme ajakohastanud logimise teeki klog/v2, mida kasutatakse Kubernetes 1.19-s. Samuti kontrollime iga logi, mille kirjutame, et mÀÀrata sellele sobiv tase. Selleks juhindusime Kubernetes'i juhistest. Logimise tasemeid on kokku viis (tÔeliselt kuus, tÔlkija mÀrk.), alates Error (tase 0), mis kuvab ainult olulised vead, kuni Trace (tase 5), mis aitab tÀpselt teada, mis toimub. Selle muudatusega vÀhendasime logide arvu, kui te ei vaja silumisinfot cert-manageri töö kÀigus.

Soovitus: vaikimisi töötab cert-manager tasemel 2 (Info), saate seda ĂŒle kirjutada, kasutades global.logLevel Helm chart'is.

MÀrkus: logide vaatamine on viimane abinÔu tÔrgete tÔrkeotsingul. Suurema teabe saamiseks tutvuge meiega juhendiga.

N.B. toimetaja: Et rohkem teada saada, kuidas see Kubernetes'e tagakĂŒljel töötab, saada vÀÀrtuslikke nĂ€punĂ€iteid praktik Ă”petajatelt ja kvaliteetset tehnilist abi, saavad osaleda veebis intensivis Kubernetes Baas, mis toimub 28.-30. septembril, ja Kubernetes Mega, mis toimub 14.-16. oktoobril.

ACME parandused

Cert-manager'i kÔige levinum kasutus on seotud Let's Encrypt'i sertifikaatide vÀljastamisega ACME protokolli abil. Versioon 1.0 on tuntud selle poolest, et see kasutas kogukonna tagasisidet kahte vÀikest, kuid olulist tÀiustust meie ACME emissari jaoks.

Konto vÔtme loomise keelamine

Kui kasutate ACME sertifikaate suurtes mahudes, kasutate tĂ”enĂ€oliselt sama kontot mitmel klastril, mistĂ”ttu kehtivad teie sertifikaatide vĂ€ljastamise piirangud kĂ”ikidele neile. See oli juba vĂ”imalik cert-manager'i abil, kui kopeerida antud saladust, privateKeySecretRef. Selline kasutusviis oli piisavalt probleemne, sest cert-manager ĂŒritas olla abiks ja rÔÔmsasti lĂ”i uue konto vĂ”tme, kui eelnevalt antud ei leitud. SeetĂ”ttu lisasime disableAccountKeyGeneration, et kaitsta teid sellise kĂ€itumise eest, kui seate selle parameetri true — cert-manager ei loo vĂ”tit ja teavitab teid, et konto vĂ”ti ei ole antud.

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt
spec:
  acme:
    privateKeySecretRef:
      name: example-issuer-account-key
    disableAccountKeyGeneration: false

Eelistatud ahel

29. september Let's Encrypt ĂŒleminekut oma juurkeskusesse sertifitseerimisel ISRG juurkeskus. Ristpindadega sertifikaadid asendatakse Identrust. See muudatus ei nĂ”ua muudatusi cert-manageri seadetes; kĂ”ik uuendatud vĂ”i uued sertifikaadid, mis pĂ€rast seda kuupĂ€eva vĂ€ljastatakse, kasutavad uut juurkeskust CA.

Let’s Encrypt juba allkirjastab sertifikaate selle CA-ga ja pakub neid «alternatiivse sertifikaadiseina» kaudu ACME. Selles cert-manageri versioonis on vĂ”imalus mÀÀrata pÀÀsu nendele ahelatele issueri seadetes. Parameetris preferredChain vĂ”ib mÀÀrata CA nime, mille kaudu sertifikaat vĂ€ljastatakse. Kui on saadaval CA sertifikaat, mis vastab taotlusele, vĂ€ljastab see teile sertifikaadi. Pange tĂ€hele, et see on eelistatud variant, kui midagi ei leita — vĂ€ljastatakse vaikimisi sertifikaat. See tagab, et te siiski uuendate oma sertifikaati pĂ€rast alternatiivse ahela eemaldamist ACME issueri kĂŒljelt.

Juba tÀna on vÔimalik saada sertifikaate, mida allkirjastab ISRG juurkeskus, nÀiteks:

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    preferredChain: "ISRG Root X1"

Kui eelistate ketti jĂ€tta IdenTrust — seadke see parameeter DST Root CA X3:

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    preferredChain: "DST Root CA X3"

Pange tĂ€hele, et see juurkeskus hakkab varsti aeguma, Let’s Encrypt toetab selle ketti aktiivsena kuni 29. septembrini 2021.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster