ΠΠΊΠΎ ΠΏΠΎΠΏΠΈΡΠ°ΡΠ΅ ΠΎΠΏΠΈΡΠ΅Π½, ΠΌΡΠ΄ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΈΡΠ»ΠΈ Π·Π° cert-manager ΠΈ Π·Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡΡ ΡΠ΅ Π²ΡΠ·Π΄ΡΡ Π½Π΅, ΡΠ΅ Π³ΠΎ ΠΏΡΠ΅Π³ΡΡΠ½Π΅ Π΄ΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ ΡΠΌΠΎΡΠ΅Π½ΠΎ: βΠΡΠΈΡΠΊΠΈ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ, Π·Π°ΡΠΎΡΠΎ Π½ΡΠΌΠ° ΡΠ°Π·ΡΠΌΠ½ΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ. ΠΠ°ΡΠΈΡΠ΅ ΠΌΠΈΡΠΊΠΈ ΠΏΠ»Π°ΡΠ°Ρ, Π±ΠΎΠ΄Π°Ρ ΡΠ΅, Π½ΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°Ρ Π΄Π° ΠΆΠΈΠ²Π΅ΡΡ Ρ ΡΠΎΠ·ΠΈ ΠΊΠ°ΠΊΡΡΡ. ΠΠ°ΡΠΎ ΠΎΠ±ΠΈΡΠ°ΠΌΠ΅? ΠΠ°ΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ°ΡΠΎ Π½Π΅ ΠΎΠ±ΠΈΡΠ°ΠΌΠ΅? Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ΅ ΠΏΡΡΠΊΠ°Ρ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΡΡΠ±Π²Π° Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ. Π ΡΡΠ°ΡΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠΏΠΈΡΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ, Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠΏΠΈΡΠ°ΡΠΈΡ ΠΈ Π³ΠΎΠ»ΡΠΌ ΠΌΠΈΡΡΠ΅ΡΠΈΠΎΠ·Π΅Π½ ΡΠ°ΠΌΠ°Π½ΠΈΠ·ΡΠΌ.β
ΠΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ²ΡΡΠ΄ΡΡ, ΡΠ΅ Ρ cert-manager 1.0 Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
ΠΠ° ΠΏΠΎΠ²ΡΡΠ²Π°ΠΌΠ΅ Π»ΠΈ?
Cert-manager Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Π½Π° Kubernetes. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ: Let's Encrypt, HashiCorp Vault, Venafi, ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°ΡΠΈ ΠΈ ΡΠ°ΠΌΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅. Π’ΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅ Π°ΠΊΡΡΠ°Π»Π½ΠΈ ΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΏΠΎΠ΄Π½ΠΎΠ²ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΡΠ΅ΠΊΠ°Ρ. Cert-manager Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° kube-lego ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΡΠΊΠΎΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΊΠ°ΡΠΎ kube-cert-manager.
ΠΠ΅Π»Π΅ΠΆΠΊΠΈ ΠΊΡΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ
Π‘ Π²Π΅ΡΡΠΈΡ 1.0 ΠΏΠΎΡΡΠ°Π²ΠΈΡ ΠΌΠ΅ Π·Π½Π°ΠΊ Π½Π° Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ Π² ΡΡΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° cert-manager. ΠΡΠ΅Π· ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΡΠΎΠΉ ΡΠ΅ ΡΠ°Π·Π²ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ, Π½ΠΎ Π½Π°ΠΉ-Π²Π΅ΡΠ΅ Π² ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°. ΠΠ½Π΅Ρ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ, Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΡ ΡΠ²ΠΎΠΈΡΠ΅ Kubernetes ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° Π³ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Ρ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΡΡΠΈ Π½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 16 ΠΈΠ·Π΄Π°Π½ΠΈΡ Π±ΡΡ Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΈ ΠΊΡΠΏ Π³ΡΠ΅ΡΠΊΠΈ. Π ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΡΠΏΠ΅Π½ΠΎ, Π±Π΅ΡΠ΅ ΡΡΡΠΏΠ΅Π½ΠΎ. ΠΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° API ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΡ Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ ΠΌΡ Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅. Π Π°Π·ΡΠ΅ΡΠΈΡ ΠΌΠ΅ 1500 ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² GitHub Ρ ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΎΡ 253 ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°.
Π‘ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° 1.0 Π½ΠΈΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ cert-manager Π΅ Π·ΡΡΠ» ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠΈΠ΅ ΡΡΡΠΎ ΠΎΠ±Π΅ΡΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡ API ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ v1
.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ cert-manager ΠΏΡΠ΅Π· ΡΠ΅Π·ΠΈ ΡΡΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ! ΠΠ΅ΠΊΠ° Π²Π΅ΡΡΠΈΡ 1.0 Π±ΡΠ΄Π΅ ΠΏΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΈ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠΎΡΡ.
ΠΠ΅ΡΡΠΈΡ 1.0 Π΅ ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ:
-
v1
ΠΠΠͺΠ; -
ΠΡΠ±ΠΎΡ
kubectl cert-manager status
, Π·Π° ΠΏΠΎΠ΄ΠΏΠΎΠΌΠ°Π³Π°Π½Π΅ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅; -
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ API Π½Π° Kubernetes;
-
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅;
-
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ACME.
ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π±Π΅Π»Π΅ΠΆΠΊΠΈΡΠ΅ Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π½Π°Π΄ΡΡΡΠΎΠΈΡΠ΅.
API v1
ΠΠ΅ΡΡΠΈΡ v0.16 ΡΠ°Π±ΠΎΡΠΈ Ρ API v1beta1
. Π’ΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΠΈ Π½ΡΠΊΠΎΠΈ ΡΡΡΡΠΊΡΡΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° API ΠΏΠΎΠ»Π΅ΡΠΎ. ΠΠ΅ΡΡΠΈΡ 1.0 Π½Π°Π΄Π³ΡΠ°ΠΆΠ΄Π° Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Ρ API v1
. Π’ΠΎΠ·ΠΈ API Π΅ ΠΏΡΡΠ²ΠΈΡΡ Π½ΠΈ ΡΡΠ°Π±ΠΈΠ»Π΅Π½, ΠΊΠ°ΡΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π²Π΅ΡΠ΅ ΡΠΌΠ΅ Π΄Π°Π»ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ, Π½ΠΎ Ρ API v1
ΠΠ±Π΅ΡΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Π·Π° Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π°ΠΏΡΠ΅Π΄.
ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ (Π·Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Π½Π°ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ³ΡΠΈΠΆΠ°Ρ Π·Π° Π²ΡΠΈΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π²Π°Ρ):
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°Ρ:
-
emailSANs
ΡΠ΅Π³Π° ΡΠ΅ ΠΎΠ±Π°ΠΆΠ΄Π°emailAddresses
-
uriSANs
-uris
Π’Π΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ Π΄ΡΡΠ³ΠΈ SAN (Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΡΠ±Π΅ΠΊΡΠΈ, ΠΏΡΠΈΠ±Π». ΠΏΡΠ΅Π²ΠΎΠ΄Π°Ρ), ΠΊΠ°ΠΊΡΠΎ ΠΈ Ρ Go API. ΠΠΈΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΡ API.
ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Kubernetes 1.16+ - ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° webhooks ΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ Π²Π΅ΡΡΠΈΠΈ Π½Π° API Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ v1alpha2
, v1alpha3
, v1beta1
ΠΈ v1
. Π‘ ΡΡΡ
ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° API, Π±Π΅Π· Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ ΡΠΈ ΡΠ΅ΡΡΡΡΠΈ. Π‘ΠΈΠ»Π½ΠΎ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° Π½Π°Π΄ΡΡΡΠΎΠΈΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈ Π΄ΠΎ API v1
, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠΊΠΎΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΎΡΡΠ΅Π³Π»Π΅Π½ΠΈ. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ legacy
Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° cert-manager Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΡΠ°ΠΌΠΎ Π΄ΠΎ v1
, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅
kubectl cert-manager status ΠΊΠΎΠΌΠ°Π½Π΄Π°
Π‘ Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π½Π°ΡΠ΅ΡΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° kubectl
Π‘ΡΠ°Π½Π° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π΅ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ. kubectl cert-manager status
ΡΠ΅Π³Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ΅, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° Π΅ΡΠ°ΠΏΠ°, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·Π΄Π°Π²Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡΡ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ kubectl cert-manager status certificate <ΠΈΠΌΡ-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°>
, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Ρ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎΡΠΎ ΠΈΠΌΠ΅ ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠ°ΡΠΎ CertificateRequest, Secret, Issuer ΠΈ Order and Challenges Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΠΎΡ ACME.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΊΠΎΠΉΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π³ΠΎΡΠΎΠ²:
$ 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
ΠΠΊΠΈΠΏΡΡ ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΈΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ 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
[...]
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ API Π½Π° Kubernetes
Cert-manager Π±Π΅ΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΡΡΠ²ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²Π½Π΅Π΄ΡΠΈΡ
Π° CRD Π½Π° Kubernetes. Π’ΠΎΠ²Π°, ΡΡΡΠ΅ΡΠ°Π½ΠΎ Ρ Π½Π°ΡΠ°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²Π΅ΡΡΠΈΠΈ Π½Π° Kubernetes Π΄ΠΎ 1.11, ΠΎΠ·Π½Π°ΡΠ°Π²Π°ΡΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈ apiextensions.k8s.io/v1beta1
ΠΈ Π·Π° Π½Π°ΡΠΈΡΠ΅ CRD admissionregistration.k8s.io/v1beta1
Π·Π° Π½Π°ΡΠΈΡΠ΅ ΡΠ΅Π±ΠΊΡΠΊΠΈΡΠΊΠΈ. Π’Π΅ Π²Π΅ΡΠ΅ ΡΠ° ΠΎΡΡ
Π²ΡΡΠ»Π΅Π½ΠΈ ΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠΈ Π² Kubernetes ΠΎΡ Π²Π΅ΡΡΠΈΡ 1.22. Π‘ Π½Π°ΡΠΈΡ 1.0 Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌΠ΅ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° apiextensions.k8s.io/v1
ΠΈ admissionregistration.k8s.io/v1
Π·Π° Kubernetes 1.16 (ΠΊΡΠ΄Π΅ΡΠΎ Π±ΡΡ
Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ) ΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΈ. ΠΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° v1beta1
Π² Π½Π°ΡΠ°ΡΠ° legacy
Π²Π΅ΡΡΠΈΠΈ.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅
Π ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ
ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π΄ΠΎ klog/v2
, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² Kubernetes 1.19. ΠΠΈΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π²ΡΡΠΊΠΎ ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΈΡΠ΅ΠΌ, Π·Π° Π΄Π° ΡΠΌΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΠ΅ ΠΌΡ Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ. ΠΠΈΠ΅ ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄Π΅Ρ
ΠΌΠ΅ ΠΎΡ ΡΠΎΠ²Π° Error
(Π½ΠΈΠ²ΠΎ 0), ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠΏΠ΅ΡΠ°ΡΠ²Π° ΡΠ°ΠΌΠΎ Π²Π°ΠΆΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π·Π°Π²ΡΡΡΠ²Π° Ρ Trace
(Π½ΠΈΠ²ΠΎ 5), ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°. Π‘ ΡΠ°Π·ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π°ΠΌΠ°Π»ΠΈΡ
ΠΌΠ΅ Π±ΡΠΎΡ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π°ΠΊΠΎ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ cert-manager.
Π‘ΡΠ²Π΅Ρ: ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ cert-manager ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ 2 (Info
), ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ global.logLevel
Π² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π₯Π΅Π»ΠΌ.
ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΠΡΠ΅Π³Π»Π΅Π΄ΡΡ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΠΏΡΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ. ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΈΠΆΡΠ΅ Π½Π°ΡΠΈΡ
NB Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°: ΠΠ° Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ° Π½Π° Kubernetes, Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ΅Π½Π½ΠΈ ΡΡΠ²Π΅ΡΠΈ ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ²Π°ΡΠΈ ΡΡΠΈΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΠΈΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π° ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΡΠ°ΡΡΠΈΠ΅ Π² ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΈ ΠΊΡΡΡΠΎΠ²Π΅
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ACME
ΠΠ°ΠΉ-ΡΠ΅ΡΡΠ°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° cert-manager Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΠΎΡ Let's Encrypt Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ACME. ΠΠ΅ΡΡΠΈΡ 1.0 ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΡΠΎΠ²Π°, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°, Π·Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ Π΄Π²Π΅ ΠΌΠ°Π»ΠΊΠΈ, Π½ΠΎ Π²Π°ΠΆΠ½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΡΠΌ Π½Π°ΡΠΈΡ ACME ΠΈΠ·Π΄Π°ΡΠ΅Π».
ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡ Π·Π° Π°ΠΊΠ°ΡΠ½Ρ
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ACME ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Π² Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Π°ΠΊΠ°ΡΠ½Ρ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΡ
. Π’ΠΎΠ²Π° Π²Π΅ΡΠ΅ Π±Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² cert-manager ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ½Π°ΡΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½Π° Π² privateKeySecretRef
. Π’ΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΠ° Π±ΡΠ³, Π·Π°ΡΠΎΡΠΎ cert-manager ΡΠ΅ ΠΎΠΏΠΈΡΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈ ΡΠ°ΡΡΠ»ΠΈΠ²ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ Π½ΠΎΠ² ΠΊΠ»ΡΡ Π·Π° Π°ΠΊΠ°ΡΠ½Ρ, Π°ΠΊΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈ ΡΠ°ΠΊΡΠ². ΠΠ°ΡΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ
ΠΌΠ΅ disableAccountKeyGeneration
Π·Π° Π΄Π° Π²ΠΈ ΠΏΡΠ΅Π΄ΠΏΠ°Π·ΠΈ ΠΎΡ ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠ°ΡΠΎ Π·Π°Π΄Π°Π΄Π΅ ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΡ Π½Π° true
- cert-manager Π½ΡΠΌΠ° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΊΠ»ΡΡ ΠΈ ΡΠ΅ Π²ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈ, ΡΠ΅ Π½Π΅ ΠΌΡ Π΅ Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΡΡ Π·Π° Π°ΠΊΠ°ΡΠ½Ρ.
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
privateKeySecretRef:
name: example-issuer-account-key
disableAccountKeyGeneration: false
ΠΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π° Π²Π΅ΡΠΈΠ³Π°
29 ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ Let's Encrypt ISRG Root
. ΠΡΡΡΡΠΎΡΠ°Π½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ Ρ Identrust
. Π’Π°Π·ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ; Π²ΡΠΈΡΠΊΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ, ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΡΠ»Π΅Π΄ ΡΠ°Π·ΠΈ Π΄Π°ΡΠ°, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½ΠΎΠ²ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅Π½ CA.
Let's Encrypt Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Ρ ΡΠΎΠ·ΠΈ CA ΠΈ Π³ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΊΠ°ΡΠΎ βΠ°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π° Π²Π΅ΡΠΈΠ³Π° ΠΎΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈβ ΡΡΠ΅Π· ACME. Π’Π°Π·ΠΈ Π²Π΅ΡΡΠΈΡ Π½Π° cert-manager ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π·Π°Π΄Π°Π²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅Π·ΠΈ Π²Π΅ΡΠΈΠ³ΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ. Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° preferredChain
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° CA, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΠΊΠΎ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ CA ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΡΠΎΠΉ ΡΠ΅ Π²ΠΈ ΠΈΠ·Π΄Π°Π΄Π΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΠΎΠ»Ρ, ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½Π°ΡΠ° ΠΎΠΏΡΠΈΡ; Π°ΠΊΠΎ Π½Π΅ Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ Π½ΠΈΡΠΎ, ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. Π’ΠΎΠ²Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅ Π΄Π° ΠΏΠΎΠ΄Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ ΡΠ²ΠΎΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΡΠ»Π΅Π΄ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΎΡ ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ Π½Π° ACME.
ΠΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ISRG Root
, Π’Π°ΠΊΠ°:
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
preferredChain: "ISRG Root X1"
ΠΠΊΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΠ΅ Π½Π°ΠΏΡΡΠ½Π΅ΡΠ΅ Π²Π΅ΡΠΈΠ³Π°ΡΠ° IdenTrust
β Π·Π°Π΄Π°ΠΉΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π° 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"
ΠΠΎΠ»Ρ, ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΎΡΠ½ΠΎΠ²Π΅Π½ CA ΡΠΊΠΎΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΡΡ Π²ΡΡΠ»Π΅Π½, Let's Encrypt ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π·ΠΈ Π²Π΅ΡΠΈΠ³Π° Π°ΠΊΡΠΈΠ²Π½Π° Π΄ΠΎ 29 ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ 2021 Π³.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com