gestore dei certificati si basa su Kubernetes, introducendo autorità di certificazione e certificati come tipi di risorse di prima classe nell'API Kubernetes. Questa funzione consente di fornire certificati come servizio agli sviluppatori che lavorano all'interno del tuo cluster Kubernetes.
cert-manager
è un progetto open source basato su Apache License 2.0 fornito da Jetstack . Dal momento che cert-manager
è un'applicazione open source, ha una propria pagina GitHub.
Questa guida ti mostrerà come installare cert-manager
in Red Hat OpenShift con un operatore . Successivamente, rilascerai un certificato autofirmato tramite il cert-manager
installato . Puoi anche seguire questo tutorial guardando questo video.
[ Potrebbe interessarti anche: Rendere i certificati CA disponibili per gli strumenti a riga di comando di Linux ]
PASSAGGIO 1:leggi la documentazione di cert-manager
Il sito web del progetto fornisce informazioni abbondanti su cert-manager
, inclusa una panoramica, l'architettura e le guide all'utilizzo.
Se esplori la sua documentazione, puoi scoprire una documentazione dettagliata che copre concetti, installazione, configurazione, utilizzo, tutorial, domande frequenti e così via. Nella pagina di benvenuto, viene visualizzato un diagramma dell'architettura di alto livello di cert-manager
.
Dai suoi repository GitHub, trovi anche documentazione aggiuntiva o contribuisci al progetto.
Puoi installare cert-manager
per un ambiente Kubernetes vaniglia o OpenShift. In questo tutorial installerò cert-manager
su OpenShift.
La documentazione di installazione di OpenShift fornisce due diverse opzioni:un normale file manifest o il cert-manager Operatore disponibile nell'interfaccia della console Web di OpenShift. Installerò tramite Operatore .
Dal momento che cert-manager
funziona da un Emittente supportato agendo come autorità di firma per assegnare i certificati delle applicazioni, devi decidere quale Emittente usare. Questa decisione dipende in genere dal tuo provider DNS (Domain Name Service). Ad esempio, se utilizzi Microsoft Azure per ospitare la tua applicazione, devi selezionare ACME e trova le istruzioni corrette per AzureDNS . Un'altra scelta popolare è Let's Encrypt . In questo caso, tuttavia, vuoi scegliere l'Emittente più semplice possibile . Pertanto, andrò con Emittente autofirmato .
Documentazione sull'Emittente è mostrato di seguito. Emittente o Emittente Cluster è una Definizione di risorse personalizzate (CRD) che può essere applicato per configurare il tipo di Emittente . Cosa distingue il tipo di Emittente viene dopo le specifiche . In quella sezione, specifica selfSigned sotto specifiche . In questo esempio utilizzerò ClusterIssuer invece di Emittente perché voglio un unico Emittente per gestire tutti i certificati degli spazi dei nomi.
Una volta che l'Emittente viene scelto e configurato, emetterò un certificato per una particolare app. Per questo passaggio, crea un Certificato risorsa definita in un file YAML.
PASSAGGIO 2:Esplora un file ClusterIssuer di esempio e un file Certificate di esempio
Ci sono due file di esempio utilizzati in questo tutorial. Il primo file di esempio definisce ClusterIssuer , che utilizza certificati autofirmati per gestire i certificati per tutti gli spazi dei nomi. Sotto specifiche , aggiungi semplicemente una riga che dice selfSigned:{} .
apiVersion: cert-manager.io/v1alpha3
kind: ClusterIssuer
metadata:
name: selfsigned-issuer
spec:
selfSigned: {}
Quindi, guarda il Certificato di esempio definizione.
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: <certificate name>
spec:
secretName: <secret name to store>
duration: 2160h0m0s # 90d
renewBefore: 360h0m0s # 15d
organization:
- "<your organization>"
keySize: 2048
keyAlgorithm: rsa
keyEncoding: pkcs1
usages:
- server auth
- client auth
# At least one of a DNS Name, URI, or IP address is required.
dnsNames:
- '<hostname>.<cluster-url>'
issuerRef:
name: selfsigned-issuer
kind: ClusterIssuer
Il Certificato file è un po' più complicato e devi apportare alcune modifiche. Tieni presente che il Certificato il valore viene assegnato per un'applicazione che espone Route , quindi è necessario disporre di un'applicazione che richieda un certificato TLS/SSL. Ecco alcune modifiche che devi apportare:
- Riga 4 - metadata.name:devi dare un nome a questo certificato.
- Riga 6 - spec.secretName:il nostro certificato sarà archiviato in un segreto OpenShift, quindi è necessario un nome per questo.
- Riga 9 - spec.organization:devi fornire il nome della tua organizzazione.
- Linea 19- spec.dnsNames:probabilmente una delle impostazioni più importanti, dovrebbe corrispondere al tuo percorso OpenShift per la tua app.
Puoi anche modificare altri campi come meglio credi. Assicurati di fare riferimento alla documentazione ufficiale di cert-manager per regolare le impostazioni in base ai requisiti e alla configurazione della tua organizzazione.
PASSAGGIO 3:Installa cert-manager tramite Operator in OpenShift
Sei pronto per distribuire il cert-manager
. Ecco la console web di OpenShift e una bella interfaccia grafica da una console web per installare cert-manager
con un Operatore . Per apportare questa modifica, devi disporre di cluster-admin privilegi.
Fai clic su Hub operatore in Operatori . Se non vedi l'opzione, molto probabilmente non sei un amministratore del cluster . Quando viene visualizzato OperatorHub, cerca cert-manager
. Nota che ci sono alcuni gestori di certificati, ma seleziona quello con la versione della community.
Viene visualizzata una finestra in stile lama. Leggi alcune istruzioni di base e fai clic su Installa quando sei pronto.
Per impostazione predefinita, il tuo cert-manager
verrà installato su openshift-operators spazio dei nomi. A partire da ora, questa è un'opzione predefinita e l'interfaccia web non ti consente di cambiarla. Lascia tutto com'è e fai clic su Installa .
Questo avvierà il cert-manager
Operatore processo di installazione. Se tutto va bene, il tuo cert-manager
Operatore dovrebbe essere installato.
Dopo cert-manager
Operatore installazione, fai clic su CertManager scheda sotto l'Operatore di cert-manager .
Operatore è solo un gestore del ciclo di vita per diversi processi di installazione e gestione della tua app. Per installare effettivamente cert-manager
, devi creare un CertManager esempio. Esamina la configurazione, inclusa la visualizzazione del file YAML. Se tutto sembra a posto, fai clic su Crea pulsante.
Questo passaggio installa una nuova istanza di CertManager . Quando tutto sarà a posto, vedrai un nuovo cert-manager
visualizzato sotto i CertManager scheda.
Assicurati di fare clic su Pods e monitora i progressi per assicurarti che tutto vada liscio. Sei finalmente pronto per i passaggi per installare un ClusterIssuer e quindi per generare un certificato.
PASSAGGIO 4:Genera ClusterIssuer in grado di emettere un certificato
Apri una finestra di terminale e accedi al cluster OpenShift. Ricorda il ClusterIssuer file che hai creato? Passare alla directory in cui risiede il file e digitare il comando seguente.
oc apply -f <name of ClusterIssuer file>
Se tutto va bene, vedrai un messaggio che informa che l'emittente autofirmata è stata creata.
Puoi tornare ai Pod del tuo gestore di certificati e fare clic su uno di essi per vedere che l'emittente autofirmato è ora installato.
Un altro modo per controllare è da una finestra di terminale con il seguente comando.
# First run this command to see our Issuers:
oc get clusterissuers
# Next, run this command to see the structure of the Issuer
oc get - yaml clusterissuers/<an Issuer name from above>
Dovresti vedere alcuni dettagli stampati su questo particolare Emittente .
Hai finito con l'installazione di un Emittente . Puoi finalmente procedere alla generazione di un certificato di esempio per un'app.
PASSAGGIO 5:Emetti un certificato in uno spazio dei nomi
L'unica cosa che devi fare è applicare il tuo Certificato file per un'app. Assicurati di aver effettuato l'accesso al tuo cluster OpenShift e quindi passa al tuo progetto. Genererò un certificato per Quay , perché sto utilizzando uno spazio dei nomi chiamato quay-enterprise , ma può essere qualsiasi cosa tu voglia chiamarlo per la tua applicazione. Una volta che sei in un progetto, digita il seguente comando:
oc apply -f <a Certificate definition file>
Dovresti vedere un messaggio che il certificato è stato creato. Puoi verificare che il certificato sia effettivamente presente con questo comando:
oc get certificate
Torna alla console web di OpenShift, fai clic sul tuo progetto e fai clic su Segreti in Carichi di lavoro per scoprire il tuo nuovo certificato TLS/SSL creato per la tua applicazione.
Concludi
Questo articolo ti aiuta a capire come installare cert-manager
su Red Hat OpenShift tramite il suo Operatore e genera un certificato autofirmato per la tua applicazione.
[ Hai bisogno di più su Ansible? Partecipa a un corso di panoramica tecnica gratuito di Red Hat. Ansible Essentials:Semplicità nell'automazione Panoramica tecnica. ]