Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Kubernetes Service -példányt konfigurálhatja a Let's Encrypt használatára, és automatikusan beszerezhet egy TLS/SSL-tanúsítványt a tartományához. A tanúsítvány az Azure-alkalmazás Gatewayre van telepítve, amely TLS/SSL-leállítást hajt végre az AKS-fürthöz.
A cikkben ismertetett beállítás a tanúsítványkezelő Kubernetes bővítményét használja, amely automatizálja a tanúsítványok létrehozását és kezelését.
Tipp.
Fontolja meg az Application Gateway for Containers használatát a Kubernetes bejövő megoldásához. További információkért lásd: Rövid útmutató: Az Application Gateway telepítése konténeres ALB-vezérlőhöz.
A bővítmény telepítése
A cert-manager meglévő AKS-fürtre való telepítéséhez kövesse az alábbi lépéseket:
Futtassa a következő szkriptet a cert-manager Helm-diagram telepítéséhez. A szkript a következő műveleteket hajtja végre:
- Új
cert-manager
névtér létrehozása az AKS-fürtön - A következő egyéni erőforrás-definíciókat (CRD-ket) hozza létre:
Certificate
,Challenge
,ClusterIssuer
,Issuer
Order
- Telepíti a cert-manager diagramot (a cert-manager webhelyről)
#!/bin/bash # Install the CustomResourceDefinition resources separately kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.crds.yaml # Create the namespace for cert-manager kubectl create namespace cert-manager # Label the cert-manager namespace to disable resource validation kubectl label namespace cert-manager cert-manager.io/disable-validation=true # Add the Jetstack Helm repository helm repo add jetstack https://charts.jetstack.io # Update your local Helm chart repository cache helm repo update # Install the cert-manager Helm chart # Helm v3+ helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --version v1.17.1 \ # --set installCRDs=true # To automatically install and manage the CRDs as part of your Helm release, # you must add the --set installCRDs=true flag to your Helm installation command.
- Új
Hozzon létre egy erőforrást
ClusterIssuer
. A Cert-Manager megköveteli, hogy ez az erőforrás az aláírt tanúsítványt kiállító Let's Encrypt hitelesítésszolgáltatót képviselje.A Cert-Manager a névtéren
ClusterIssuer
kívüli erőforrást használja olyan tanúsítványok kiállítására, amelyek több névtérből is felhasználhatók. A Let's Encrypt az ACME protokoll használatával ellenőrzi, hogy Ön irányít-e egy adott domainnevet, és kibocsát egy tanúsítványt. A tulajdonságok konfigurálásávalClusterIssuer
kapcsolatos további részleteket a cert-manager dokumentációjában talál.ClusterIssuer
utasítja a tanúsítványkezelőt, hogy állítson ki tanúsítványokat a teszteléshez használt Let's Encrypt átmeneti környezet használatával. (A főtanúsítvány nem található meg a böngésző-/ügyfélmegbízhatósági tárolókban.)Az alábbi YAML alapértelmezett feladattípusa a következő
http01
. A Let's Encrypt dokumentációban más kihívástípusok is megtalálhatók.Az alábbi YAML-ben mindenképpen cserélje le a
<YOUR.EMAIL@ADDRESS>
elemet a saját adataira.#!/bin/bash kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-staging spec: acme: # You must replace this email address with your own. # Let's Encrypt uses this to contact you about expiring # certificates, and issues related to your account. email: <YOUR.EMAIL@ADDRESS> # ACME server URL for Let's Encrypt's staging environment. # The staging environment won't issue trusted certificates but is # used to ensure that the verification process is working properly # before moving to production server: https://acme-staging-v02.api.letsencrypt.org/directory privateKeySecretRef: # Secret resource used to store the account's private key. name: example-issuer-account-key # Enable the HTTP-01 challenge provider # you prove ownership of a domain by ensuring that a particular # file is present at the domain solvers: - http01: ingress: # class: azure/application-gateway ingressTemplate: metadata: annotations: kubernetes.io/ingress.class: azure/application-gateway EOF
Hozzon létre egy bejövő erőforrást, amely elérhetővé teszi az
guestbook
alkalmazást az Application Gateway üzembe helyezésével a Let's Encrypt tanúsítvánnyal.Győződjön meg arról, hogy az Application Gateway központi telepítése DNS-névvel rendelkező nyilvános előtéri IP-konfigurációval rendelkezik. Használja az alapértelmezett
azure.com
tartományt, vagy építsen ki egy Azure DNS-zónát, majd rendelje hozzá saját egyéni tartományát. A széljegyzetcertmanager.k8s.io/cluster-issuer: letsencrypt-staging
arra utasítja a cert-managert, hogy dolgozza fel a címkézett bejövő erőforrást.Az alábbi YAML-ben mindenképpen cserélje le a
<PLACEHOLDERS.COM>
-t saját tartományával vagy az Application Gateway tartományával (példáulkh-aks-ingress.westeurope.cloudapp.azure.com
).kubectl apply -f - <<EOF apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: guestbook-letsencrypt-staging annotations: kubernetes.io/ingress.class: azure/application-gateway cert-manager.io/cluster-issuer: letsencrypt-staging spec: tls: - hosts: - <PLACEHOLDERS.COM> secretName: guestbook-secret-name rules: - host: <PLACEHOLDERS.COM> http: paths: - backend: serviceName: frontend servicePort: 80 EOF
Néhány másodperc elteltével az Application Gateway HTTPS URL-címén keresztül érheti el a
guestbook
szolgáltatást az automatikusan kiadott Let's Encrypt tanúsítvány használatával az előkészítéshez.Előfordulhat, hogy a böngésző figyelmezteti Önt egy érvénytelen hitelesítésszolgáltatóra. Ennek az az oka, hogy
CN=Fake LE Intermediate X1
kiadta a tesztelési tanúsítványt. Ez a figyelmeztetés azt jelenti, hogy a rendszer a várt módon működött, és készen áll az éles tanúsítványra.Az előkészítési tanúsítvány sikeres beállítása után válthat éles ACME-kiszolgálóra:
- Cserélje le a bejövő erőforrás átmeneti megjegyzését a következőre:
cert-manager.io/cluster-issuer: letsencrypt-prod
. - Törölje a korábban létrehozott meglévő átmeneti erőforrást
ClusterIssuer
. Hozzon létre egy új átmeneti erőforrást az előzőClusterIssuer
YAML ACME-kiszolgálójának lecserélésévelhttps://acme-v02.api.letsencrypt.org/directory
.
- Cserélje le a bejövő erőforrás átmeneti megjegyzését a következőre:
A Let's Encrypt tanúsítvány lejárata cert-manager
előtt automatikusan frissíti a tanúsítványt a Kubernetes titkos tárában. Ezen a ponton az Application Gateway bejövőforgalom-vezérlője az Application Gateway konfigurálásához használt bejövő erőforrásokban hivatkozott frissített titkos kulcsot alkalmazza.