Upami anjeun naroskeun ka insinyur anu berpengalaman sareng wijaksana naon anu anjeunna pikirkeun ngeunaan manajer sertipikat sareng naha sadayana nganggo éta, maka spesialis bakal ngahuleng, nangkeup anjeunna dina kapercayaan sareng nyarios bosen: "Sarerea nganggo éta, sabab teu aya alternatif anu waras. Beurit urang ceurik, cucuk, tapi terus hirup jeung kaktus ieu. Naha urang bogoh? Sabab tiasa dianggo. Naha urang henteu bogoh? Kusabab versi anyar terus kaluar anu ngagunakeun fitur anyar. Jeung anjeun kudu ngamutahirkeun klaster leuwih sarta leuwih deui. Jeung versi heubeul eureun digawé, sabab aya konspirasi sarta dukun misterius hébat.
Tapi pamekar ngaku éta sertipikat-manajer 1.0 sagalana bakal robah.
Naha urang bakal percaya?
Cert-manajer nyaéta pengendali manajemén sertipikat asli Kubernetes. Éta tiasa dianggo pikeun ngaluarkeun sertipikat ti sababaraha sumber: Hayu Encrypt, HashiCorp Vault, Venafi, tandatangan sareng pasangan konci anu ditandatanganan diri. Ogé ngidinan Anjeun pikeun nyimpen konci up-to-date dumasar titimangsa béakna, sarta ogé nyoba otomatis renew sertipikat dina waktu nu tangtu sateuacan aranjeunna kadaluwarsa. Cert-manager dumasar kana kube-lego sarta ogé geus dipaké sababaraha trik ti proyék sarupa séjénna kayaning kube-cert-manager.
Catetan Kaluaran
Kalayan vérsi 1.0, kami nempatkeun tanda kapercayaan salami tilu taun pangwangunan proyék sertipikat-manajer. Salila ieu, éta parantos mekar sacara signifikan dina fungsionalitas sareng stabilitas, tapi paling seueur di masarakat. Ayeuna, urang ningali seueur jalma anu ngagunakeun éta pikeun ngamankeun klaster Kubernetes na ogé nyebarkeunana ka sababaraha bagian ékosistem. Seueur bug anu parantos dibenerkeun dina 16 rilis anu terakhir. Sareng anu kedah dirusak nyaéta rusak. Sababaraha kunjungan damel sareng API parantos ningkatkeun interaksina sareng pangguna. Kami parantos ngarengsekeun 1500 masalah dina GitHub kalayan langkung seueur paménta tarik ti 253 anggota komunitas.
Kalayan sékrési 1.0, kami sacara resmi nyatakeun yén manajer sertifikasi mangrupikeun proyék anu dewasa. Kami ogé janji pikeun ngajaga API kami cocog v1
.
Hatur nuhun ka sadayana anu ngabantosan kami ngadamel sertipikat-manajer salami tilu taun ieu! Hayu versi 1.0 jadi kahiji tina loba hal badag datang.
Kaluaran 1.0 mangrupikeun sékrési stabil sareng sababaraha daérah prioritas:
-
v1
API; -
regu
kubectl cert-manager status
, pikeun mantuan analisis masalah; -
Ngagunakeun API Kubernetes stabil panganyarna;
-
Ningkatkeun logging;
-
perbaikan ACME.
Pastikeun maca catetan pamutahiran sateuacan ningkatkeun.
API v1
Vérsi v0.16 digarap kalawan API v1beta1
. Ieu ditambahkeun sababaraha parobahan struktural sarta ogé ningkat dokuméntasi widang API. Vérsi 1.0 diwangun dina ieu kalawan API v1
. API ieu mangrupikeun stabil munggaran urang, dina waktos anu sami kami parantos masihan jaminan kasaluyuan, tapi kalayan API v1
kami janji pikeun ngajaga kasaluyuan pikeun taun datang.
Parobihan anu dilakukeun (catetan: alat konversi kami ngurus sadayana pikeun anjeun):
Sertipikat:
-
emailSANs
ayeuna disebutemailAddresses
-
uriSANs
-uris
Parobihan ieu nambihan kasaluyuan sareng SAN sanés (ngaran alt subjék, kira-kira. penerjemah), kitu ogé jeung Go API. Kami ngahapus istilah ieu tina API kami.
Apdet
Upami Anjeun keur make Kubernetes 1.16+, ngarobah webhooks bakal ngidinan Anjeun pikeun sakaligus tur seamlessly digawekeun ku versi API. v1alpha2
, v1alpha3
, v1beta1
и v1
. Kalayan ieu, anjeun bakal tiasa nganggo versi anyar tina API tanpa ngarobah atawa redeploying sumberdaya heubeul Anjeun. Kami nyarankeun pisan ningkatkeun manifests anjeun ka API v1
, sabab vérsi saméméhna bakal dileungitkeun pas. Pamaké legacy
versi cert-manager masih bakal ngan boga aksés ka v1
, léngkah pamutahiran bisa kapanggih
kubectl cert-manager paréntah status
Kalawan perbaikan anyar dina extension urang ka kubectl
janten langkung gampang pikeun nalungtik masalah anu aya hubunganana sareng henteu ngaluarkeun sertipikat. kubectl cert-manager status
ayeuna masihan langkung seueur inpormasi ngeunaan naon anu aya dina sertipikat sareng ogé nunjukkeun tahap penerbitan sertipikat.
Saatos masang ekstensi, anjeun tiasa ngajalankeun kubectl cert-manager status certificate <имя-сертификата>
, anu bakal milarian sertipikat kalayan nami anu dipasihkeun sareng sumber daya anu aya hubunganana sapertos CertificateRequest, Secret, Issuer, sareng Order and Challenges upami nganggo sertipikat ti ACME.
Conto debugging sertipikat anu henteu acan siap:
$ 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
Paréntah ogé tiasa ngabantosan anjeun langkung seueur ngeunaan eusi sertipikat. Conto lengkep pikeun sertipikat anu dikaluarkeun ku 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
[...]
Ngagunakeun API Kubernetes stabil panganyarna
Cert-manajer éta salah sahiji mimiti pikeun nerapkeun Kubernetes CRDs. Ieu, sareng dukungan kami pikeun versi Kubernetes dugi ka 1.11, hartosna urang kedah ngadukung warisan apiextensions.k8s.io/v1beta1
pikeun CRDs urang ogé admissionregistration.k8s.io/v1beta1
pikeun webhooks urang. Éta ayeuna tos teu dianggo sareng bakal dipupus dina Kubernetes tina versi 1.22. Kalayan 1.0 kami ayeuna nawiskeun dukungan pinuh apiextensions.k8s.io/v1
и admissionregistration.k8s.io/v1
pikeun Kubernetes 1.16 (dimana maranéhanana ditambahkeun) sarta leuwih anyar. Pikeun pangguna vérsi saméméhna, kami terus nawiskeun dukungan v1beta1
di urang legacy
versi.
logging ningkat
Dina release ieu, kami geus diropéa perpustakaan logging ka klog/v2
, dipaké dina Kubernetes 1.19. Kami ogé marios unggal jurnal anu kami tulis pikeun mastikeun éta ditugaskeun tingkat anu pas. Kami dipandu ku ieu Error
(tingkat 0), nu prints ukur kasalahan penting, sarta ditungtungan make Trace
(tingkat 5) anu bakal ngabantosan anjeun terang naon anu lumangsung. Kalayan parobahan ieu, kami parantos ngirangan jumlah log upami anjeun henteu peryogi inpormasi debug nalika ngajalankeun manajer-sertipikat.
Tip: cert-manager dijalankeun dina tingkat 2 sacara standar (Info
), anjeun tiasa nimpa ieu nganggo global.logLevel
dina Helmchart.
Catetan: Ningali log mangrupikeun jalan terakhir nalika ngungkulan. Kanggo inpo nu leuwih lengkep pariksa kaluar kami
Editor urang n.b.: Pikeun leuwih jéntré ngeunaan kumaha eta sadayana jalan dina tiung tina Kubernetes, meunang nasihat berharga ti practicing guru, kitu ogé kualitas rojongan teknis pitulung, anjeun tiasa ilubiung dina intensif online.
Perbaikan ACME
Panggunaan manajer-cert anu paling umum sigana aya hubunganana sareng ngaluarkeun sertipikat ti Let's Encrypt nganggo ACME. Vérsi 1.0 kasohor ngagunakeun eupan balik komunitas pikeun nambahkeun dua perbaikan leutik tapi penting pikeun penerbit ACME kami.
Nonaktipkeun pembuatan konci akun
Upami anjeun nganggo sertipikat ACME dina volume anu ageung, anjeun kamungkinan ngagunakeun akun anu sami dina sababaraha klaster, ku kituna larangan penerbitan sertipikat anjeun bakal dilarapkeun ka sadayana. Ieu parantos tiasa dilakukeun dina manajer-sertipikat nalika nyalin rusiah anu dijelaskeun dina privateKeySecretRef
. Kasus pamakean ieu rada buggy, sabab manajer sertipikat nyobian ngabantosan sareng bahagia nyiptakeun konci akun énggal upami éta henteu mendakan. Éta naha urang ditambahkeun disableAccountKeyGeneration
ngajaga anjeun tina kabiasaan ieu mun anjeun nyetel pilihan ieu true
- cert-manager moal ngahasilkeun konci sarta bakal ngingetkeun yén éta teu acan disadiakeun kalawan konci akun.
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
privateKeySecretRef:
name: example-issuer-account-key
disableAccountKeyGeneration: false
Ranté pikaresep
29 Séptémber Hayu urang Encrypt ISRG Root
. sertipikat cross-ditandatanganan bakal diganti ku Identrust
. Parobihan ieu henteu meryogikeun parobihan kana setélan sertipikat-manajer, sadaya sertipikat anu diropéa atanapi énggal anu dikaluarkeun saatos tanggal ieu bakal nganggo akar CA anyar.
Hayu Encrypt parantos nandatanganan sertipikat sareng CA ieu sareng nawiskeun aranjeunna salaku "ranté sertipikat alternatif" via ACME. Dina versi sertipikat-manajer ieu, anjeun tiasa nyetél aksés kana ranté ieu dina setélan penerbit. Dina parameter preferredChain
anjeun tiasa netepkeun nami CA anu dianggo, dimana sertipikatna bakal dikaluarkeun. Upami sertipikat CA anu cocog sareng pamundut sayogi, éta bakal ngaluarkeun sertipikat anjeun. Punten dicatet yén ieu mangrupikeun pilihan anu dipikaresep, upami teu aya anu kapendak, sertipikat standar bakal dikaluarkeun. Ieu bakal mastikeun yén anjeun masih bakal renew sertipikat anjeun sanggeus mupus ranté alternatif dina sisi penerbit ACME.
Geus kiwari anjeun tiasa nampi sertipikat ditandatanganan ku ISRG Root
, Jadi:
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
preferredChain: "ISRG Root X1"
Lamun anjeun resep ninggalkeun ranté IdenTrust
- Nyetél pilihan ieu pikeun 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"
Punten dicatet yén akar CA ieu bakal dileungitkeun pas, Hayu Encrypt bakal ngajaga ranté ieu aktip dugi ka 29 Séptémber 2021.
sumber: www.habr.com