pengurus sijil 1.0 dikeluarkan

Jika anda bertanya kepada jurutera yang berpengalaman dan bijak tentang pendapatnya tentang pengurus sijil dan mengapa semua orang menggunakannya, maka pakar itu akan mengeluh, memeluknya dengan penuh keyakinan dan berkata dengan letih: β€œSemua orang menggunakannya, kerana tiada alternatif yang waras. Tikus kami menangis, mencucuk, tetapi terus hidup dengan kaktus ini. Kenapa kita sayang? Kerana ia berfungsi. Kenapa kita tidak sayang? Kerana versi baharu sentiasa keluar yang menggunakan ciri baharu. Dan anda perlu mengemas kini kluster berulang kali. Dan versi lama berhenti berfungsi, kerana terdapat konspirasi dan dukun misteri yang hebat.

Tetapi pemaju mendakwa bahawa pengurus sijil 1.0 segalanya akan berubah.

Adakah kita akan percaya?

pengurus sijil 1.0 dikeluarkan

Pengurus sijil ialah pengawal pengurusan sijil Kubernetes asli. Ia boleh digunakan untuk mengeluarkan sijil daripada pelbagai sumber: Let's Encrypt, HashiCorp Vault, Venafi, tandatangan dan pasangan kunci yang ditandatangani sendiri. Ia juga membolehkan anda memastikan kunci dikemas kini mengikut tarikh tamat tempoh, dan juga cuba memperbaharui sijil secara automatik pada masa tertentu sebelum ia tamat tempoh. Cert-manager adalah berdasarkan kube-lego dan juga telah menggunakan beberapa helah daripada projek lain yang serupa seperti kube-cert-manager.

Nota Keluaran

Dengan versi 1.0, kami meletakkan tanda kepercayaan selama tiga tahun pembangunan projek pengurus sijil. Pada masa ini, ia telah berkembang dengan ketara dalam kefungsian dan kestabilan, tetapi kebanyakannya dalam komuniti. Hari ini, kami melihat ramai orang menggunakannya untuk menjamin kluster Kubernetes mereka serta mengerahkannya ke pelbagai bahagian ekosistem. Banyak pepijat telah diperbaiki dalam 16 keluaran terakhir. Dan apa yang perlu dipecahkan adalah rosak. Beberapa lawatan untuk bekerja dengan API telah meningkatkan interaksinya dengan pengguna. Kami telah menyelesaikan 1500 isu di GitHub dengan lebih banyak permintaan tarik daripada 253 ahli komuniti.

Dengan keluaran 1.0, kami secara rasmi mengisytiharkan bahawa pengurus sijil ialah projek matang. Kami juga berjanji untuk memastikan API kami serasi v1.

Terima kasih banyak kepada semua orang yang membantu kami menjadi pengurus sijil sepanjang tiga tahun ini! Biarkan versi 1.0 menjadi yang pertama daripada banyak perkara besar yang akan datang.

Keluaran 1.0 ialah keluaran stabil dengan beberapa bidang keutamaan:

  • v1 KEBAKARAN;

  • Pasukan kubectl cert-manager status, untuk membantu dengan analisis masalah;

  • Menggunakan API Kubernetes stabil terkini;

  • Pembalakan yang lebih baik;

  • Penambahbaikan ACME.

Pastikan anda membaca nota naik taraf sebelum menaik taraf.

API v1

Versi v0.16 berfungsi dengan API v1beta1. Ini menambah beberapa perubahan struktur dan juga menambah baik dokumentasi medan API. Versi 1.0 dibina atas ini dengan API v1. API ini ialah API pertama kami yang stabil, pada masa yang sama kami telah memberikan jaminan keserasian, tetapi dengan API v1 kami berjanji untuk mengekalkan keserasian untuk tahun-tahun akan datang.

Perubahan yang dibuat (nota: alatan penukaran kami menguruskan segala-galanya untuk anda):

Sijil:

  • emailSANs kini dipanggil emailAddresses

  • uriSANs - uris

Perubahan ini menambah keserasian dengan SAN lain (nama alt subjek, lebih kurang penterjemah), serta dengan Go API. Kami sedang mengalih keluar istilah ini daripada API kami.

Kemas kini

Jika anda menggunakan Kubernetes 1.16+, penukaran webhooks akan membolehkan anda bekerja secara serentak dan lancar dengan versi API v1alpha2, v1alpha3, v1beta1 ΠΈ v1. Dengan ini, anda akan dapat menggunakan versi baharu API tanpa mengubah atau mengatur semula sumber lama anda. Kami amat mengesyorkan anda meningkatkan manifes anda kepada API v1, kerana versi sebelumnya akan ditamatkan tidak lama lagi. Pengguna legacy versi pengurus sijil masih hanya mempunyai akses kepada v1, langkah naik taraf boleh didapati di sini.

perintah status pengurus sijil kubectl

Dengan penambahbaikan baharu dalam sambungan kami kepada kubectl ia menjadi lebih mudah untuk menyiasat masalah yang berkaitan dengan tidak pengeluaran sijil. kubectl cert-manager status kini memberikan lebih banyak maklumat tentang perkara yang berlaku dengan sijil dan juga menunjukkan peringkat pengeluaran sijil.

Selepas memasang sambungan, anda boleh menjalankan kubectl cert-manager status certificate <имя-сСртификата>, yang akan mencari sijil dengan nama yang diberikan dan sebarang sumber yang berkaitan seperti Permintaan Sijil, Rahsia, Pengeluar dan Pesanan dan Cabaran jika menggunakan sijil daripada ACME.

Contoh penyahpepijatan sijil yang belum sedia:

$ 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

Perintah itu juga boleh membantu anda mengetahui lebih lanjut tentang kandungan sijil. Contoh terperinci untuk sijil yang dikeluarkan oleh 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
[...]

Menggunakan API Kubernetes stabil terkini

Pengurus sijil ialah salah seorang yang pertama melaksanakan CRD Kubernetes. Ini, dan sokongan kami untuk versi Kubernetes sehingga 1.11, bermakna kami perlu menyokong warisan apiextensions.k8s.io/v1beta1 untuk CRD kami juga admissionregistration.k8s.io/v1beta1 untuk webhook kami. Ia kini ditamatkan dan akan dialih keluar dalam Kubernetes daripada versi 1.22. Dengan 1.0 kami kini kami menawarkan sokongan penuh apiextensions.k8s.io/v1 ΠΈ admissionregistration.k8s.io/v1 untuk Kubernetes 1.16 (di mana ia ditambah) dan lebih baharu. Bagi pengguna versi terdahulu, kami terus menawarkan sokongan v1beta1 dalam kami legacy versi.

Pembalakan yang lebih baik

Dalam keluaran ini, kami telah mengemas kini perpustakaan pengelogan kepada klog/v2, digunakan dalam Kubernetes 1.19. Kami juga menyemak setiap jurnal yang kami tulis untuk memastikan ia diberikan tahap yang sesuai. Kami dibimbing oleh ini bimbingan daripada Kubernetes. Terdapat lima (sebenarnya enam, lebih kurang penterjemah) peringkat pembalakan bermula dari Error (tahap 0), yang hanya mencetak ralat penting dan berakhir dengan Trace (tahap 5) yang akan membantu anda mengetahui dengan tepat apa yang sedang berlaku. Dengan perubahan ini, kami telah mengurangkan bilangan log jika anda tidak memerlukan maklumat nyahpepijat semasa menjalankan pengurus-sijil.

Petua: pengurus sijil berjalan pada tahap 2 secara lalai (Info), anda boleh mengatasi ini menggunakan global.logLevel dalam Helmchart.

Nota: Melihat log adalah pilihan terakhir apabila menyelesaikan masalah. Untuk maklumat lanjut lihat kami kepimpinan.

N.b editor.: Untuk mengetahui lebih lanjut tentang cara semuanya berfungsi di bawah hud Kubernetes, dapatkan nasihat berharga daripada guru yang mengamalkan, serta bantuan sokongan teknikal yang berkualiti, anda boleh mengambil bahagian dalam intensif dalam talian Pangkalan Kubernetes, yang akan diadakan pada 28-30 September, dan Kubernetes Megayang akan diadakan pada 14-16 Oktober.

Penambahbaikan ACME

Penggunaan pengurus sijil yang paling biasa mungkin berkaitan dengan pengeluaran sijil daripada Let's Encrypt menggunakan ACME. Versi 1.0 terkenal kerana menggunakan maklum balas komuniti untuk menambah dua peningkatan kecil tetapi penting kepada pengeluar ACME kami.

Lumpuhkan penjanaan kunci akaun

Jika anda menggunakan sijil ACME dalam jumlah yang besar, anda berkemungkinan menggunakan akaun yang sama pada berbilang kelompok, jadi sekatan pengeluaran sijil anda akan dikenakan pada kesemuanya. Ini telah pun boleh dilakukan dalam pengurus sijil apabila menyalin rahsia yang dinyatakan dalam privateKeySecretRef. Kes penggunaan ini agak bermasalah, kerana pengurus sijil cuba membantu dan dengan senang hati mencipta kunci akaun baharu jika ia tidak menemuinya. Itulah sebabnya kami menambah disableAccountKeyGenerationuntuk melindungi anda daripada tingkah laku ini jika anda menetapkan pilihan ini kepada true - pengurus sijil tidak akan menjana kunci dan akan memberi amaran kepada anda bahawa kunci akaun itu belum diberikan.

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

Rantaian Pilihan

29 September Mari Sulitkan akan lulus kepada CA akar anda sendiri ISRG Root. Sijil yang ditandatangani silang akan digantikan dengan Identrust. Perubahan ini tidak memerlukan perubahan pada tetapan pengurus sijil, semua sijil yang dikemas kini atau baharu yang dikeluarkan selepas tarikh ini akan menggunakan CA akar baharu.

Let's Encrypt sudah menandatangani sijil dengan CA ini dan menawarkannya sebagai "rantai sijil alternatif" melalui ACME. Dalam versi pengurus sijil ini, adalah mungkin untuk menetapkan akses kepada rantaian ini dalam tetapan pengeluar. Dalam parameter preferredChain anda boleh menentukan nama CA yang sedang digunakan, dengan mana sijil akan dikeluarkan. Jika sijil CA yang sepadan dengan permintaan tersedia, ia akan mengeluarkan sijil kepada anda. Sila ambil perhatian bahawa ini adalah pilihan pilihan, jika tiada apa-apa dijumpai, sijil lalai akan dikeluarkan. Ini akan memastikan bahawa anda masih akan memperbaharui sijil anda selepas memadamkan rantaian ganti pada pihak pengeluar ACME.

Sudah hari ini anda boleh menerima sijil yang ditandatangani oleh 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"

Jika anda lebih suka meninggalkan rantai IdenTrust - tetapkan pilihan ini kepada 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"

Sila ambil perhatian bahawa CA akar ini akan ditamatkan tidak lama lagi, Let's Encrypt akan memastikan rantaian ini aktif sehingga 29 September 2021.

Sumber: www.habr.com

Tambah komen