administrador de certificados se basa en Kubernetes, presentando autoridades de certificación y certificados como tipos de recursos de primera clase en la API de Kubernetes. Esta función permite proporcionar certificados como servicio a los desarrolladores que trabajan dentro de su clúster de Kubernetes.
cert-manager
es un proyecto de código abierto basado en Apache License 2.0 proporcionado por Jetstack . Desde cert-manager
es una aplicación de código abierto, tiene su propia página de GitHub.
Esta guía le mostrará cómo puede instalar cert-manager
en Red Hat OpenShift con un Operador . Después de eso, emitirá un certificado autofirmado a través del cert-manager
instalado. . También puede seguir este tutorial viendo este video.
[ También te puede interesar: Hacer que los certificados de CA estén disponibles para las herramientas de línea de comandos de Linux]
PASO 1:Lea la documentación de cert-manager
El sitio web del proyecto proporciona abundante información sobre cert-manager
, que incluye una descripción general, arquitectura y guías de uso.
Si explora su documentación, puede descubrir documentación detallada que cubre conceptos, instalación, configuración, uso, tutoriales, preguntas frecuentes, etc. En la página de bienvenida, verá un diagrama de arquitectura de alto nivel de cert-manager
.
Desde sus repositorios de GitHub, también encontrará documentación adicional o contribuirá al proyecto.
Puede instalar cert-manager
para un entorno Vanilla Kubernetes u OpenShift. En este tutorial, instalaré cert-manager
en OpenShift.
La documentación de instalación de OpenShift ofrece dos opciones diferentes:un archivo de manifiesto normal o el Operador del administrador de certificados disponible en la interfaz de la consola web de OpenShift. Lo instalaré a través de Operador .
Desde cert-manager
funciona con un Emisor respaldado actuando como autoridad de firma para asignar certificados de aplicación, debe decidir qué Emisor usar. Esta decisión generalmente depende de su proveedor de Servicio de nombres de dominio (DNS). Por ejemplo, si usa Microsoft Azure para alojar su aplicación, debe seleccionar ACME y encuentre las instrucciones adecuadas para AzureDNS . Otra opción popular es Let's Encrypt. . En este caso, sin embargo, desea elegir el Emisor más simple posible. . Por lo tanto, optaré por Emisor autofirmado .
Documentación sobre Emisor se muestra a continuación. Emisor o Emisor de clúster es una Definición de recurso personalizado (CRD) que se pueden aplicar para configurar el tipo de Emisor . Lo que separa el tipo de Emisor viene después de spec . En esa sección, especifique autofirmado bajo especificación . En este ejemplo, usaré ClusterIssuer en lugar de Emisor porque quiero un único Emisor para administrar los certificados de todos los espacios de nombres.
Una vez que el Emisor es elegido y configurado, emitiré un certificado para una aplicación en particular. Para este paso, cree un Certificado recurso que está definido en un archivo YAML.
PASO 2:Explore un archivo ClusterIssuer de muestra y un archivo de certificado de muestra
Hay dos archivos de muestra utilizados en este tutorial. El primer archivo de muestra define ClusterIssuer , que usa certificados autofirmados para administrar certificados para todos los espacios de nombres. Bajo especificación , solo agregue una línea que diga autofirmado:{} .
apiVersion: cert-manager.io/v1alpha3
kind: ClusterIssuer
metadata:
name: selfsigned-issuer
spec:
selfSigned: {}
A continuación, mire el Certificado de muestra. definición.
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
El Certificado El archivo es un poco más complicado y necesita hacer algunos cambios. Tenga en cuenta que el Certificado el valor se asigna por una aplicación que expone Ruta , por lo que debe tener una aplicación que requiera un certificado TLS/SSL. Estos son algunos cambios que debe realizar:
- Línea 4 - metadata.name:debe proporcionar algún nombre para este certificado.
- Línea 6 - spec.secretName:nuestro certificado se almacenará en un secreto de OpenShift, por lo que necesita un nombre para esto.
- Línea 9 - organización específica:debe proporcionar el nombre de su organización.
- Línea 19- spec.dnsNames:probablemente una de las configuraciones más importantes, debe coincidir con su ruta OpenShift para su aplicación.
También puede modificar otros campos como mejor le parezca. Asegúrese de consultar la documentación oficial de cert-manager para ajustar la configuración según los requisitos y la configuración de su organización.
PASO 3:Instalar cert-manager a través de Operador en OpenShift
Está listo para implementar el cert-manager
. Aquí está la consola web de OpenShift y una buena interfaz gráfica desde una consola web para instalar cert-manager
con un Operador . Para realizar este cambio, debe tener cluster-admin privilegios.
Haga clic en OperatorHub en Operadores . Si no ve la opción, lo más probable es que no sea un administrador de clúster . Cuando aparezca OperatorHub, busque cert-manager
. Tenga en cuenta que hay algunos administradores de certificados, pero seleccione el que tenga la versión comunitaria.
Se muestra una ventana estilo hoja. Lea algunas instrucciones básicas y haga clic en Instalar cuando estés listo.
De forma predeterminada, su cert-manager
se instalará en los operadores de turno abierto espacio de nombres A partir de ahora, esa es una opción predeterminada y la interfaz web no le permite cambiarla. Deje todo como está y haga clic en Instalar .
Esto iniciará el cert-manager
Operador proceso de instalación. Si todo va bien, su cert-manager
Operador debe instalarse.
Después de cert-manager
Operador instalación, haga clic en CertManager pestaña debajo del Operador del administrador de certificados .
Operador es solo un administrador de ciclo de vida para diferentes procesos de instalación y administración para su aplicación. Para instalar realmente cert-manager
, debe crear un CertManagers instancia. Revise la configuración, incluida la vista del archivo YAML. Si todo se ve bien, haga clic en Crear botón.
Este paso instala una nueva instancia de CertManager . Una vez que todo se vea bien, verá un nuevo cert-manager
se muestra debajo de CertManagers pestaña.
Asegúrate de hacer clic en Pods y monitoree el progreso para asegurarse de que todo salga bien. Finalmente está listo para seguir los pasos para instalar un ClusterIssuer y luego para generar un certificado.
PASO 4:Generar ClusterIssuer que pueda emitir un certificado
Abra una ventana de terminal e inicie sesión en el clúster de OpenShift. Recuerde el ClusterIssuer archivo que creaste? Navegue hasta el directorio donde reside el archivo y escriba el siguiente comando.
oc apply -f <name of ClusterIssuer file>
Si todo va bien, verá un mensaje que indica que se ha creado el emisor autofirmado.
Puede volver a los pods de su administrador de certificados y hacer clic en uno de ellos para ver que el emisor autofirmado ya está instalado.
Otra forma de verificar es desde una ventana de terminal con el siguiente 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>
Debería ver algunos detalles impresos sobre este Emisor en particular. .
Ha terminado de instalar un Emisor . Finalmente puede proceder a generar un certificado de muestra para una aplicación.
PASO 5:Emitir un certificado en un espacio de nombres
Lo único que debe hacer es solicitar su Certificado archivo para una aplicación. Asegúrese de haber iniciado sesión en su clúster de OpenShift y luego cambie a su proyecto. Generaré un certificado para Quay , porque estoy usando un espacio de nombres llamado quay-enterprise , pero puede ser cualquier nombre que desee para su aplicación. Una vez que esté en un proyecto, escriba el siguiente comando:
oc apply -f <a Certificate definition file>
Debería ver un mensaje de que se ha creado el certificado. Puede verificar que el certificado está realmente allí con este comando:
oc get certificate
Regrese a la consola web de OpenShift, haga clic en su proyecto y haga clic en Secretos en Cargas de trabajo para descubrir su nuevo certificado TLS/SSL creado para su aplicación.
Resumir
Este artículo lo ayuda a comprender cómo instalar cert-manager
en Red Hat OpenShift a través de su Operador y genere un certificado autofirmado para su aplicación.
[ ¿Necesita más información sobre Ansible? Realice un curso gratuito de descripción técnica de Red Hat. Ansible Essentials:descripción técnica de la simplicidad en la automatización. ]