Agregue un certificado SSL/TLS al clúster Kubernetes

Agregue un certificado SSL/TLS al clúster Kubernetes

Los certificados SSL se utilizan para asegurar la aplicación que se realiza en Kubernetes para su seguridad futura. Tomemos otro certificado seguro, TLS, que contiene una clave privada muy segura. Los certificados se crean con certificados: K8R.API IO. Enseñaremos sobre la configuración del certificado SSL con la ayuda de ejemplos detallados. Comencemos con el certificado SSL en Kubernetes. Los certificados SSL son muy importantes para los navegadores. El navegador, con la ayuda de los certificados SSL y TLS, crea una conexión segura con los servicios de Kubernetes.

Requisitos previos:

Cada usuario debe tener la última versión de Ubuntu de su sistema. El usuario del sistema operativo Windows instala una caja virtual y agrega Ubuntu o Linux virtualmente al sistema. Los usuarios deben estar familiarizados con Kubernetes, la línea de comandos de Kubectl, vainas y clústeres, y conocen el clúster DNS para comprender mejor este tema.

Echemos un vistazo brevemente a la configuración del certificado SSL en Kubernetes dividiendo todo el procedimiento en diferentes pasos.

Paso 1: Iniciar panel de control de Kubernetes

Queremos un entorno en nuestra aplicación donde podamos ejecutar comandos Kubernetes para realizar tareas de Kubernetes. Como resultado, Kubernetes nos proporciona un contenedor de base local llamado "Minikube."En cada inicio de la aplicación Kubernetes, iniciaremos un minikube en Kubernetes, que es básicamente un terminal, que se requiere para ejecutar comandos de Kubernetes. En este paso, ejecutamos el comando para inicializar Minikube, que es:

> Minikube Start

Cuando ejecutamos este comando en nuestro terminal del sistema, la ejecución del comando comienza presionando el botón ENTER. El comando nos muestra un resultado de captura de pantalla a continuación.

Paso 2: Generar solicitud de firma de certificados

Después de crear un clúster usando Minikube, ahora queremos crear una solicitud de firma de certificado. A cambio de esta acción, ejecutamos el comando para firmar la solicitud de certificado y generar una clave privada.

> gato <

Después de la ejecución de la consulta, la solicitud se genera con éxito con la clave privada. El resultado se adjunta arriba como una captura de pantalla.

Paso 3: Cree un manifiesto de solicitud de firma de certificado en el archivo YAML

En este paso, crearemos un manifiesto de archivo YAML para crear un CSR en Kubernetes. Ejecutamos el comando a continuación:

> gato <

Después de la ejecución de este comando, se crea con éxito un archivo YAML. Y lo enviamos al servidor API, como se muestra en la captura de pantalla adjunta.

Paso 4: Obtener el estado de la solicitud de firma del certificado

En este paso, veremos el estado de CSR como se ve a través de la API. Podemos ejecutar el comando dado para recuperar el estado de la solicitud de certificado.

> kubectl describir csv my-svc.My Namespace

Cuando se ejecuta el comando, el estado CSR se muestra en la salida, como se muestra en la captura de pantalla adjunta. El estado de la RSE es "pendiente", y este estado proviene de API. El nombre del archivo es my-SVC. My Namespace and Annotations, solicitando el usuario y sujeto, los nombres alternativos de sujeto que tienen nombres DNS y direcciones IP, eventos, etc. están incluidos en la descripción de CSR. El estado es "pendiente", lo que significa que el certificado de CSR aún no ha sido aprobado.

Paso 5: Aprobación de los certificados de CSR

El estado del certificado de CSR todavía está pendiente. Entonces, en este caso, enviaremos una consulta a la API de Kubernetes para aprobar el certificado de CSR. Ejecutamos este comando para su aprobación:

> certificado kubectl aprobar my-svc .My Namespace

El comando muestra la salida después de la ejecución. Una persona autorizada, como la administración de Kubernetes, aprueba el certificado CSR. Como somos usuarios autorizados, creamos archivos YAML. Como resultado, el certificado CSR se aprueba fácilmente utilizando el comando, como se muestra en la captura de pantalla a continuación para aclarar.

my-svc.my-namespace se aprueba con éxito a través de los certificados.K8S.API IO.

Paso 6: Obtenga el certificado CSR en Kubernetes

Ahora estamos esperando para ver si el certificado CSR ha sido aprobado. Por lo tanto, ejecutaremos el comando para obtener una lista de todos los certificados de CSR que actualmente están activos en el sistema. Ejecute el comando:

> kubectl obtener CSR

El nombre del certificado CSR aprobado en Kubernetes se muestra en la captura de pantalla adjunta. Este comando devuelve el nombre, la edad, el nombre del firmante, el solicitante, la duración solicitada y la condición del certificado CSR.

Paso 7: Firme el certificado creando autoridad

En este paso, veremos cómo se firman los certificados en Kubernetes. El certificado SSL está aprobado pero aún no está firmado. El nombre del firmante aparece en el certificado en Kubernetes. Ejecutamos el comando a través del cual el firmador solicitado firma el certificado. El comando es:

> gato <
"CN": "Mi firmante de ejemplo",
"llave":
"Algo": "RSA",
"Tamaño": 2048


EOF

El comando se ejecuta para firmar el certificado digitalmente. El firmante firma los certificados solicitados y actualiza el estado de la API con el comando, "Certificado SSL."Creamos un certificado de firma ejecutando el comando anterior y el resultado se muestra en la captura de pantalla adjunta. Se ha utilizado con éxito un número de serie único para firmar el certificado.

Paso 8: cree un archivo JSON para emitir un certificado

Después de la firma del certificado, creamos un archivo JSON desde el cual emitimos un certificado. Crearemos un archivo JSON ejecutando el siguiente comando con la captura de pantalla adjunta:

> Nano FirmingFile.json

Después de ejecutar el comando, el archivo JSON se crea como se puede ver en la captura de pantalla a continuación.

Paso 9: Use el servidor firmante-config.json

En este paso, utilizamos el archivo de firma de firma de servidor que está en JSON para firmar y emitir los certificados. Ejecutamos el comando para la firma del certificado con un archivo de clave privada.

> Kubectl Get CSR My-SVC.my -namespace -o jsonpath = '.Especificaciones.Solicitud '| \ Base64 --decode | \ CFSSL Signo -ca CA.PEM -ca CA-Key CA-Key.PEM -Config Server-Signing-Config.JSON | \ cfssljson -Bare CA-firmado

Después de este comando, el certificado que ya está definido en el archivo JSON está firmado. Se genera el número de serie de esta CSR. Aquí, generamos un archivo de certificado de servicio firmado llamado "CA-firmado-server.pem."

Paso 10: carga de certificado firmado en el objeto API

En este paso, cargamos el certificado firmado al estado de API pendiente que vimos anteriormente. El comando para cargar es:

> Kubectl Get CSR My-SVC.my -namespace -o json | \ jq '.estado.certificado = "
'$ (Base64 CA firmado.PEM | tr -d '\ n') '"' | \
> Kubectl Reemplazar - -RAW /API /Certificados.K8S.io/v1/certificatesigningRequests/my-svc.my- namespace/status -f -

Cuando se ejecuta este comando, el certificado firmado se carga correctamente cada vez que se aprueba el CSR. La captura de pantalla adjunta aboved nos muestra un formato JSON que carga el certificado firmado como objetos API.

Paso 11: Enlistar certificados aprobados en Kubernetes

Nuevamente ejecutamos el comando para mostrar los certificados aprobados en Kubernetes.

> kubectl obtener CSR

El certificado fue aprobado y emitido con éxito, como se muestra en la captura de pantalla anterior.

Paso 12: Guarde el certificado en el sistema

En este paso, aprenderemos cómo descargar el certificado firmado y usarlo con éxito en nuestro sistema. Implementamos fácilmente el certificado en el servidor. El comando es:

> Kubectl Get CSR My-SVC.my -namespace -o jsonpath = '.estado.certificado' \
| base64 --decode> servidor.CRT

Paso 13: poca el certificado

En este paso, aprenderemos cómo completar el certificado en el servidor para que podamos usar fácilmente el certificado para la seguridad web. Ejecutamos el comando:

kalsoom@kalsoom> Kubectl Crear servidor TLS secreto -servidor -CERT.CRT-Key Key Key.pem

La captura de pantalla atacada anteriormente nos muestra que TLS Secure o Secret Server se crea correctamente con Name Cert Server.CR y tener clave de servidor de clave privada.pem.

Paso 14: Configuración Mapa del certificado

En este paso, configuraremos el certificado para asegurarnos de que sea un certificado de servicio seguro ejecutando el comando a continuación:

> kubectl crea configMap Ejemplo-Servving-CA-desde el archivo CA.CRT = CA.pem

Como se muestra en la captura de pantalla adjunta, el mapa de configuración/Ejemplo-Servving-CA se crea correctamente en Kubernetes para una conexión segura en el servidor web.

Conclusión

Los certificados SSL se utilizan para proporcionar seguridad a las aplicaciones de Kubernetes en el servidor web. Explicamos cada detalle de paso para su comprensión. También puede ejecutar los mismos comandos en su aplicación Kubernetes para instalar el certificado SSL.