cert-manager 1.0 lëshuar

Nëse pyet një inxhinier me përvojë dhe të mençur se çfarë mendon për Cert-Manager dhe pse të gjithë e përdorin atë, ai do të psherëtijë, do të të përqafojë me konfidencialitet dhe do të thotë i lodhur: "Të gjithë e përdorin sepse nuk ka alternativa të arsyeshme. Minjtë tanë qajnë, shpojnë veten, por vazhdojnë të jetojnë me këtë kaktus. Pse e duam? Sepse funksionon. Pse nuk na pëlqen? Sepse versione të reja dalin vazhdimisht, duke përfshirë veçori të reja. Dhe duhet ta përditësosh grumbullin vazhdimisht. Dhe versionet e vjetra ndalojnë së funksionuari sepse ekziston një komplot dhe një shamanizëm i madh misterioz."

Por zhvilluesit sigurojnë që me menaxheri i certifikatave 1.0 gjithçka do të ndryshojë.

A do ta besojmë?

cert-manager 1.0 lëshuar

Cert-manager është një kontrollues vendas i menaxhimit të certifikatave Kubernetes. Ai mund të lëshojë certifikata nga burime të ndryshme, duke përfshirë Let's Encrypt, HashiCorp Vault, Venafi, dhe çifte çelësash si për nënshkrimin ashtu edhe për vetë-nënshkrimin. Ai gjithashtu i mban çelësat të përditësuar me periudhat e vlefshmërisë dhe përpiqet të rinovojë automatikisht certifikatat në kohë të caktuara para se të skadojnë. Cert-manager bazohet në kube-lego dhe gjithashtu huazon disa teknika nga projekte të tjera të ngjashme, të tilla si kube-cert-manager.

Shënimet e publikimit

Me versionin 1.0, po festojmë tre vjet zhvillim për projektin cert-manager. Gjatë kësaj kohe, ai është rritur ndjeshëm në funksionalitet dhe stabilitet, por mbi të gjitha, në komunitet. Sot, shohim shumë njerëz që e përdorin atë për të siguruar klasteret e tyre Kubernetes dhe për ta zbatuar atë në pjesë të ndryshme të ekosistemit. 16 versionet e fundit kanë parë rregullime të shumta gabimesh. Dhe ajo që duhej të prishej është prishur. Disa raunde pune API kanë përmirësuar përvojën e përdoruesit. Ne kemi zgjidhur 1500 probleme në GitHub, me edhe më shumë kërkesa tërheqjeje nga 253 anëtarë të komunitetit.

Duke publikuar versionin 1.0, ne zyrtarisht e shpallim cert-manager një projekt të pjekur. Gjithashtu premtojmë të ruajmë përputhshmërinë me API-në tonë. v1.

Një falënderim i madh për të gjithë ata që na ndihmuan të zhvillojmë Cert-Manager gjatë tre viteve të fundit! Versioni 1.0 le të jetë i pari nga shumë arritje të mëdha që do të vijnë.

Versioni 1.0 është një version i qëndrueshëm me disa fusha fokusi:

  • v1 ZJARR;

  • Ekip kubectl cert-manager status, për të ndihmuar në analizimin e problemeve;

  • Duke përdorur API-të më të fundit të qëndrueshme të Kubernetes;

  • Regjistrim i përmirësuar;

  • Përmirësime të ACME-së.

Ju lutemi sigurohuni që të lexoni shënimet e përditësimit përpara se të përditësoni.

API v1

Versioni v0.16 funksionoi me API-n v1beta1Kjo shtoi disa ndryshime strukturore dhe përmirësoi dokumentimin e fushave të API-t. Versioni 1.0 ndërtohet mbi këtë me API-n. v1Ky API është i pari ynë i qëndrueshëm, ndërsa ne kemi ofruar tashmë garanci përputhshmërie, por me API-në v1 Ne premtojmë të ruajmë përputhshmërinë për vitet që vijnë.

Ndryshimet e bëra (shënim: mjetet tona të konvertimit do të kujdesen për gjithçka për ju):

Certifikata:

  • emailSANs tani quhet emailAddresses

  • uriSANs - uris

Këto ndryshime shtojnë përputhshmërinë me SAN-të e tjera (emrat alternativë të subjektit, përafërsisht. përkthyes), si dhe me Go API-n. Po e heqim këtë term nga API-ja jonë.

Update

Nëse përdorni Kubernetes 1.16+, konvertimi i webhook-eve do t'ju lejojë të punoni pa probleme me versionet e API-t njëkohësisht. v1alpha2, v1alpha3, v1beta1 и v1Me këto, mund të përdorni versionin e ri të API-t pa ndryshuar ose ridislokuar burimet tuaja të vjetra. Ne ju rekomandojmë fuqimisht të përditësoni manifestet e API-t tuaj. v1, pasi versionet e mëparshme së shpejti do të hiqen nga përdorimi. Përdoruesit legacy versionet e cert-manager do të kenë ende qasje vetëm në v1, hapat e përditësimit mund të gjenden këtu.

Komanda e statusit kubectl cert-manager

Me përmirësime të reja në zgjerimin tonë për kubectl Është bërë më e lehtë të hetohen çështjet që lidhen me moslëshimin e certifikatave. kubectl cert-manager status tani ofron shumë më tepër informacion rreth asaj që po ndodh me certifikatat dhe gjithashtu tregon fazën e lëshimit të certifikatave.

Pas instalimit të zgjerimit, mund të ekzekutoni kubectl cert-manager status certificate <имя-сертификата>, i cili do të kërkojë një certifikatë me emrin e specifikuar dhe çdo burim të lidhur me të, siç janë Kërkesa për Certifikatë, Sekreti, Lëshuesi dhe Renditja dhe Sfidat në rastin e certifikatave nga ACME.

Një shembull i debugging-ut të një certifikate që nuk është ende gati:

$ kubectl cert-manager status certificate acme-certificate

Name: acme-certificate
Namespace: default
Created at: 2020-08-21T16:44:13+02:00
Conditions:
  Ready: False, Reason: DoesNotExist, Message: Issuing certificate as Secret does not exist
  Issuing: True, Reason: DoesNotExist, Message: Issuing certificate as Secret does not exist
DNS Names:
- example.com
Events:
  Type    Reason     Age   From          Message
  ----    ------     ----  ----          -------
  Normal  Issuing    18m   cert-manager  Issuing certificate as Secret does not exist
  Normal  Generated  18m   cert-manager  Stored new private key in temporary Secret resource "acme-certificate-tr8b2"
  Normal  Requested  18m   cert-manager  Created new CertificateRequest resource "acme-certificate-qp5dm"
Issuer:
  Name: acme-issuer
  Kind: Issuer
  Conditions:
    Ready: True, Reason: ACMEAccountRegistered, Message: The ACME account was registered with the ACME server
error when finding Secret "acme-tls": secrets "acme-tls" not found
Not Before: <none>
Not After: <none>
Renewal Time: <none>
CertificateRequest:
  Name: acme-certificate-qp5dm
  Namespace: default
  Conditions:
    Ready: False, Reason: Pending, Message: Waiting on certificate issuance from order default/acme-certificate-qp5dm-1319513028: "pending"
  Events:
    Type    Reason        Age   From          Message
    ----    ------        ----  ----          -------
    Normal  OrderCreated  18m   cert-manager  Created Order resource default/acme-certificate-qp5dm-1319513028
Order:
  Name: acme-certificate-qp5dm-1319513028
  State: pending, Reason:
  Authorizations:
    URL: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/97777571, Identifier: example.com, Initial State: pending, Wildcard: false
Challenges:
- Name: acme-certificate-qp5dm-1319513028-1825664779, Type: DNS-01, Token: J-lOZ39yNDQLZTtP_ZyrYojDqjutMAJOxCL1AkOEZWw, Key: U_W3gGV2KWgIUonlO2me3rvvEOTrfTb-L5s0V1TJMCw, State: pending, Reason: error getting clouddns service account: secret "clouddns-accoun" not found, Processing: true, Presented: false

Komanda mund t'ju ndihmojë gjithashtu të mësoni më shumë rreth përmbajtjes së certifikatës. Ja një shembull i detajeve për një certifikatë të lëshuar nga Letsencrypt:

$ 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:  <none>
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
[...]

Duke përdorur API-të më të fundit të qëndrueshme të Kubernetes

Cert-manager ishte një nga të parët që zbatoi Kubernetes CRD. Kjo, së bashku me mbështetjen tonë për versionet e Kubernetes deri në 1.11, nënkuptonte se na duhej të mbështesnim trashëgiminë. apiextensions.k8s.io/v1beta1 edhe për CRD-të tona admissionregistration.k8s.io/v1beta1 për webhook-et tona. Ato tani janë të vjetruara dhe do të hiqen në Kubernetes duke filluar nga versioni 1.22. Me versionin tonë 1.0, ne tani ofrojmë mbështetje të plotë. apiextensions.k8s.io/v1 и admissionregistration.k8s.io/v1 për Kubernetes 1.16 (ku u shtuan) dhe më vonë. Ne vazhdojmë të ofrojmë mbështetje për përdoruesit e versioneve të mëparshme. v1beta1 në tonën legacy versionet.

Regjistrim i përmirësuar

Në këtë version kemi përditësuar bibliotekën e regjistrimit në klog/v2, e përdorur në Kubernetes 1.19. Ne gjithashtu shqyrtojmë çdo regjistër që shkruajmë për t'i caktuar atij nivelin e duhur. Ne përdorëm udhëzime nga KubernetesJanë pesë (në fakt gjashtë, përafërsisht. përkthyes) nivelet e regjistrimit, duke filluar nga Error (niveli 0), i cili nxjerr vetëm gabime të rëndësishme dhe përfundon me Trace (niveli 5), i cili do t'ju ndihmojë të zbuloni saktësisht se çfarë po ndodh. Me këtë ndryshim, ne kemi zvogëluar sasinë e regjistrave nëse nuk keni nevojë për informacion për debugging kur ekzekutoni cert-manager.

Këshillë: Si parazgjedhje, menaxheri i certifikatave funksionon në nivelin 2 (Info), mund ta anashkaloni këtë duke përdorur global.logLevel në tabelën Helm.

Shënim: Shikimi i regjistrave është zgjidhja e fundit kur zgjidhni probleme. Për më shumë informacion, ju lutemi shihni faqen tonë të internetit për të gjetur një zgjidhje. udhëheqja.

Nr.b e redaktorit.Për të mësuar më shumë rreth asaj se si funksionon gjithçka nën kapuçin e Kubernetes, për të marrë këshilla të vlefshme nga instruktorë praktikues dhe për të marrë mbështetje teknike me cilësi të lartë, mund të merrni pjesë në kurse intensive online. Baza e Kubernetes, e cila do të mbahet 28-30 shtator, dhe Kubernetes Mega, i cili do të zhvillohet nga 14 deri në 16 tetor.

Përmirësime të ACME-së

Përdorimi më i zakonshëm i menaxherit të certifikatave është ndoshta lëshimi i certifikatave Let's Encrypt duke përdorur ACME. Versioni 1.0 është i njohur për përfshirjen e reagimeve të komunitetit në dy përmirësime të vogla, por të rëndësishme për lëshuesin tonë ACME.

Çaktivizimi i gjenerimit të çelësit të llogarisë

Nëse përdorni certifikata ACME në vëllime të mëdha, ka të ngjarë të përdorni të njëjtën llogari në disa klastera, kështu që kufizimet e lëshimit të certifikatës suaj do të zbatohen për të gjitha ato. Kjo ishte e mundur tashmë në cert-manager duke kopjuar sekretin e specifikuar në privateKeySecretRefKy rast përdorimi kishte mjaft gabime, pasi menaxheri i certifikatave u përpoq të ishte i dobishëm dhe me kënaqësi krijoi një çelës të ri llogarie nëse nuk mund të gjente një të tillë. Kjo është arsyeja pse shtuam disableAccountKeyGenerationPër t'ju mbrojtur nga kjo sjellje, nëse e vendosni këtë opsion në true — cert-manager nuk do të krijojë një çelës dhe do t'ju paralajmërojë se nuk i është dhënë një çelës llogarie.

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

Zinxhiri i preferuar

29 shtator Le të Enkriptojmë do të vazhdojë te autoriteti juaj i çertifikimit rrënjësor ISRG RootCertifikatat me nënshkrime të kryqëzuara do të zëvendësohen nga IdentrustKy ndryshim nuk kërkon ndonjë ndryshim në cilësimet e menaxherit të certifikatave; të gjitha certifikatat e rinovuara ose të reja të lëshuara pas kësaj date do të përdorin autoritetin e ri të certifikimit rrënjësor.

Let's Encrypt tashmë nënshkruan certifikata duke përdorur këtë CA dhe i ofron ato si një "zinxhir alternativ certifikatash" nëpërmjet ACME. Ky version i menaxherit të certifikatave ju lejon të specifikoni qasjen në këto zinxhirë në cilësimet e lëshuesit. Në parametër preferredChain Mund të specifikoni emrin e CA-së që do të lëshojë certifikatën. Nëse është e disponueshme një certifikatë CA që përputhet me kërkesën tuaj, ajo do ta lëshojë atë. Vini re se ky është opsioni i preferuar; nëse nuk gjendet asgjë, do të lëshohet certifikata e parazgjedhur. Kjo siguron që ju të mund ta rinovoni ende certifikatën tuaj pasi të fshini zinxhirin alternativ në lëshuesin ACME.

Ju mund të merrni certifikata të nënshkruara që sot ISRG Root, Kështu që:

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

Nëse preferoni të largoheni nga zinxhiri IdenTrust - vendosni këtë parametër në 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"

Ju lutemi vini re se kjo CA rrënjë së shpejti do të hiqet nga përdorimi. Let's Encrypt do ta mbajë këtë zinxhir aktiv deri më 29 shtator 2021.

Burimi: www.habr.com

Bleni një host të besueshëm për faqet me mbrojtje DDoS, serverë VPS VDS 🔥 Bleni hosting të besueshëm të faqeve të internetit me mbrojtje DDoS, servera VPS VDS | ProHoster