Cómo instalar y configurar una autoridad de certificación (CA) en Ubuntu 20.04

Introducción

Una autoridad de certificación (CA) es una entidad responsable de emitir certificados digitales para verificar identidades en Internet. Aunque las CA públicas son una opción popular para verificar la identidad de los sitios web y otros servicios que se prestan al público en general, las CA privadas se suelen utilizar para grupos cerrados y servicios privados.

Construir una Autoridad de Certificación privada le permitirá configurar, probar y ejecutar programas que requieren conexiones cifradas entre un cliente y un servidor. Con una CA privada, puede emitir certificados para usuarios, servidores o programas y servicios individuales dentro de su infraestructura.

Algunos ejemplos de programas en Linux que utilizan su propia CA privada son OpenVPN y Puppet . También puede configurar su servidor web para utilizar los certificados emitidos por una CA privada con el fin de hacer que los entornos de desarrollo y puesta en escena coincidan con los servidores de producción que utilizan TLS para cifrar las conexiones.

En esta guía, aprenderemos a configurar una Autoridad de Certificación privada en un servidor Ubuntu 20.04, y a generar y firmar un certificado de prueba utilizando su nueva CA. También aprenderá a importar el certificado público del servidor de la CA en el almacén de certificados de su sistema operativo para poder verificar la cadena de confianza entre la CA y los servidores o usuarios remotos. Por último, aprenderá a revocar certificados y a distribuir una lista de revocación de certificados para asegurarse de que sólo los usuarios y sistemas autorizados puedan utilizar los servicios que dependen de su CA.

Requisitos previos

Para completar este tutorial, necesitará acceso a un servidor Ubuntu 20.04 para alojar su servidor de CA. Deberá configurar un usuario no root con privilegios sudo antes de comenzar esta guía. Puedes seguir nuestra guía de configuración inicial del servidor Ubuntu 20.04 para configurar un usuario con los permisos adecuados. El tutorial vinculado también configurará un cortafuegos, que se asume que está en su lugar a lo largo de esta guía.

Este servidor será referido como el Servidor CA en este tutorial.

Asegúrese de que el Servidor CA es un sistema independiente. Sólo se utilizará para importar, firmar y revocar solicitudes de certificados. No debe ejecutar ningún otro servicio, e idealmente estará desconectado o completamente apagado cuando no esté trabajando activamente con su CA.

Nota: La última sección de este tutorial es opcional si desea aprender sobre la firma y revocación de certificados. Si decide completar esos pasos de práctica, necesitará un segundo servidor Ubuntu 20.04 o también puede utilizar su propio ordenador Linux local que ejecute Ubuntu o Debian, o distribuciones derivadas de cualquiera de ellos.

Paso 1 – Instalar Easy-RSA

La primera tarea de este tutorial es instalar el conjunto de scripts easy-rsa en su servidor CA. easy-rsa es una herramienta de gestión de la Autoridad de Certificación que utilizará para generar una clave privada, y un certificado raíz público, que luego utilizará para firmar las solicitudes de los clientes y servidores que dependerán de su CA.

Ingrese a su Servidor CA como el usuario sudo no root que creó durante los pasos de configuración inicial y ejecute lo siguiente:

  • sudo apt update
  • sudo apt install easy-rsa

Se le pedirá que descargue el paquete y lo instale. Pulse y para confirmar que desea instalar el paquete.

En este punto tiene todo lo que necesita configurado y listo para usar Easy-RSA. En el siguiente paso creará una infraestructura de clave pública y, a continuación, empezará a crear su autoridad de certificación.

Paso 2 – Preparación de un directorio de infraestructura de clave pública

Ahora que ha instalado easy-rsa, es el momento de crear un esqueleto de infraestructura de clave pública (PKI) en el servidor CA. Asegúrese de que todavía está conectado como su usuario no root y cree un directorio easy-rsa. Asegúrese de no utilizar sudo para ejecutar ninguno de los siguientes comandos, ya que su usuario normal debe gestionar e interactuar con la CA sin privilegios elevados.

  • mkdir ~/easy-rsa

Esto creará un nuevo directorio llamado easy-rsa en su carpeta de inicio. Utilizaremos este directorio para crear enlaces simbólicos que apunten a los archivos del paquete easy-rsa que hemos instalado en el paso anterior. Estos archivos se encuentran en la carpeta /usr/share/easy-rsa del servidor de CA.

Cree los enlaces simbólicos con el comando ln:

  • ln -s /usr/share/easy-rsa/* ~/easy-rsa/

Nota: Mientras que otras guías pueden indicarle que copie los archivos del paquete easy-rsa en su directorio PKI, este tutorial adopta un enfoque de enlaces simbólicos. Como resultado, cualquier actualización del paquete easy-rsa se reflejará automáticamente en los scripts de su PKI.

Para restringir el acceso a su nuevo directorio PKI, asegúrese de que sólo el propietario pueda acceder a él mediante el comando chmod:

  • chmod 700 /home/sammy/easy-rsa

Por último, inicialice la PKI dentro del directorio easy-rsa:

  • cd ~/easy-rsa
  • ./easyrsa init-pki
Output
init-pki complete; you may now create a CA or requests.Your newly created PKI dir is: /home/sammy/easy-rsa/pki

Después de completar esta sección, tendrá un directorio que contiene todos los archivos necesarios para crear una autoridad de certificación. En la siguiente sección creará la clave privada y el certificado público para su CA.

Paso 3 – Creación de una Autoridad de Certificación

Antes de que pueda crear la clave privada y el certificado de su CA, necesita crear y rellenar un archivo llamado vars con algunos valores por defecto. En primer lugar se cd en el directorio easy-rsa, a continuación, crear y editar el archivo vars con nano o su editor de texto preferido:

  • cd ~/easy-rsa
  • nano vars

Una vez abierto el archivo, pegar en las siguientes líneas y editar cada valor resaltado para reflejar su propia información de la organización. Lo importante aquí es asegurarse de no dejar ningún valor en blanco:

~/easy-rsa/vars
set_var EASYRSA_REQ_COUNTRY "US"set_var EASYRSA_REQ_PROVINCE "NewYork"set_var EASYRSA_REQ_CITY "New York City"set_var EASYRSA_REQ_ORG "DigitalOcean"set_var EASYRSA_REQ_EMAIL "[email protected]"set_var EASYRSA_REQ_OU "Community"set_var EASYRSA_ALGO "ec"set_var EASYRSA_DIGEST "sha512"

Cuando haya terminado, guarde y cierre el archivo. Si utiliza nano, puede hacerlo pulsando CTRL+X, luego Y y ENTER para confirmar. Ahora está listo para crear su CA.

Para crear el par de claves públicas y privadas raíz para su Autoridad de Certificación, ejecute el comando ./easy-rsa de nuevo, esta vez con la opción build-ca:

  • ./easyrsa build-ca

En la salida, verá algunas líneas sobre la versión de OpenSSL y se le pedirá que introduzca una frase de contraseña para su par de claves. Asegúrese de elegir una frase de contraseña fuerte, y anótela en algún lugar seguro. Tendrá que introducir la frase de contraseña cada vez que necesite interactuar con su CA, por ejemplo para firmar o revocar un certificado.

También se le pedirá que confirme el nombre común (CN) de su CA. El CN es el nombre utilizado para referirse a esta máquina en el contexto de la Autoridad de Certificación. Puede introducir cualquier cadena de caracteres para el nombre común de la CA, pero para simplificar, pulse ENTER para aceptar el nombre por defecto.

Output
. . .Enter New CA Key Passphrase:Re-Enter New CA Key Passphrase:. . .Common Name (eg: your user, host, or server name) :CA creation complete and you may now import and sign cert requests.Your new CA certificate file for publishing is at:/home/sammy/easy-rsa/pki/ca.crt

Nota: Si no quiere que se le pida una contraseña cada vez que interactúe con su CA, puede ejecutar el comando build-ca con la opción nopass, así:

  • ./easyrsa build-ca nopass

Ahora tiene dos archivos importantes – ~/easy-rsa/pki/ca.crt y ~/easy-rsa/pki/private/ca.key – que constituyen los componentes público y privado de una Autoridad de Certificación.

  • ca.crt es el archivo del certificado público de la CA. Los usuarios, servidores y clientes utilizarán este certificado para verificar que forman parte de la misma red de confianza. Todos los usuarios y servidores que utilicen su CA deberán tener una copia de este archivo. Todas las partes confiarán en el certificado público para asegurarse de que alguien no está suplantando un sistema y realizando un ataque Man-in-the-middle.

  • ca.key es la clave privada que la CA utiliza para firmar certificados para servidores y clientes. Si un atacante obtiene acceso a su CA y, a su vez, a su archivo ca.key, tendrá que destruir su CA. Por esta razón, su archivo ca.key sólo debe estar en su máquina de CA y que, idealmente, su máquina de CA debe mantenerse fuera de línea cuando no está firmando las solicitudes de certificados como una medida de seguridad adicional.

Con eso, su CA está en su lugar y está listo para ser utilizado para firmar las solicitudes de certificados, y para revocar los certificados.

Paso 4 – Distribuir el certificado público de su autoridad de certificación

Ahora su CA está configurada y lista para actuar como raíz de confianza para cualquier sistema que desee configurar para utilizarla. Puede añadir el certificado de la CA a sus servidores OpenVPN, servidores web, servidores de correo, etc. Cualquier usuario o servidor que necesite verificar la identidad de otro usuario o servidor en su red debe tener una copia del archivo ca.crt importado en el almacén de certificados de su sistema operativo.

Para importar el certificado público de la CA en un segundo sistema Linux como otro servidor o un equipo local, primero obtenga una copia del archivo ca.crt de su servidor CA. Puede utilizar el comando cat para obtenerlo en un terminal y, a continuación, copiarlo y pegarlo en un archivo del segundo ordenador que está importando el certificado. También puede utilizar herramientas como scp, rsync para transferir el archivo entre sistemas. Sin embargo, utilizaremos copiar y pegar con nano en este paso, ya que funcionará en todos los sistemas.

Como usuario no root en el servidor de CA, ejecute el siguiente comando:

  • cat ~/easy-rsa/pki/ca.crt

En su terminal aparecerá una salida similar a la siguiente:

Output
-----BEGIN CERTIFICATE-----MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQELBQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw. . .. . .-----END CERTIFICATE-----

Copie todo, incluidas las líneas -----BEGIN CERTIFICATE----- y -----END CERTIFICATE----- y los guiones.

En su segundo sistema Linux utilice nano o su editor de texto preferido para abrir un archivo llamado /tmp/ca.crt:

  • nano /tmp/ca.crt

Pegue el contenido que acaba de copiar del servidor CA en el editor. Cuando haya terminado, guarde y cierre el archivo. Si utiliza nano, puede hacerlo pulsando CTRL+X, luego Y y ENTER para confirmar.

Ahora que tiene una copia del archivo ca.crt en su segundo sistema Linux, es el momento de importar el certificado a su almacén de certificados del sistema operativo.

En sistemas basados en Ubuntu y Debian, ejecute los siguientes comandos como su usuario no root para importar el certificado:

Distribuciones derivadas de Ubuntu y Debian
  • sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  • sudo update-ca-certificates

Para importar el certificado del servidor CA en sistemas basados en CentOS, Fedora o RedHat, copie y pegue el contenido del archivo en el sistema como en el ejemplo anterior en un archivo llamado /tmp/ca.crt. A continuación, copiará el certificado en /etc/pki/ca-trust/source/anchors/ y, a continuación, ejecutará el comando update-ca-trust.

Distribuciones CentOS, Fedora, RedHat
  • sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
  • sudo update-ca-trust

Ahora su segundo sistema Linux confiará en cualquier certificado que haya sido firmado por el servidor de la CA.

Nota: Si está utilizando su CA con servidores web y utiliza Firefox como navegador, tendrá que importar el certificado público ca.crt en Firefox directamente. Firefox no utiliza el almacén de certificados del sistema operativo local. Para más detalles sobre cómo añadir el certificado de su CA a Firefox, consulte este artículo de soporte de Mozilla sobre la configuración de las autoridades de certificación (CA) en Firefox.

Si está utilizando su CA para integrarse con un entorno Windows o con ordenadores de sobremesa, consulte la documentación sobre cómo utilizar certutil.exe para instalar un certificado de CA.

Si está utilizando este tutorial como prerrequisito para otro tutorial, o está familiarizado con cómo firmar y revocar certificados puede detenerse aquí. Si desea aprender más sobre cómo firmar y revocar certificados, entonces la siguiente sección opcional explicará cada proceso en detalle.

(Opcional) – Crear solicitudes de firma de certificados y revocar certificados

Las siguientes secciones del tutorial son opcionales. Si ha completado todos los pasos anteriores, entonces tiene una autoridad de certificación totalmente configurada y en funcionamiento que puede utilizar como requisito previo para otros tutoriales. Puede importar el archivo ca.crt de su CA y verificar los certificados en su red que han sido firmados por su CA.

Si desea practicar y aprender más sobre cómo firmar solicitudes de certificados, y cómo revocar certificados, entonces estas secciones opcionales explicarán cómo funcionan ambos procesos.

(Opcional) – Creación y firma de una solicitud de certificado de práctica

Ahora que tiene una CA lista para usar, puede practicar la generación de una clave privada y una solicitud de certificado para familiarizarse con el proceso de firma y distribución.

Una solicitud de firma de certificado (CSR) consta de tres partes: una clave pública, información de identificación sobre el sistema solicitante y una firma de la propia solicitud, que se crea utilizando la clave privada de la parte solicitante. La clave privada se mantendrá en secreto, y se utilizará para cifrar la información que cualquier persona con el certificado público firmado puede descifrar.

Los siguientes pasos se ejecutarán en su segundo sistema Ubuntu o Debian, o en una distribución derivada de cualquiera de ellos. Puede ser otro servidor remoto, o una máquina Linux local como un portátil o un ordenador de sobremesa. Como easy-rsa no está disponible por defecto en todos los sistemas, utilizaremos la herramienta openssl para crear una clave privada y un certificado de práctica.

openssl suele estar instalado por defecto en la mayoría de las distribuciones de Linux, pero para estar seguro, ejecute lo siguiente en su sistema:

  • sudo apt update
  • sudo apt install openssl

Cuando se le pida instalar openssl introduzca y para continuar con los pasos de instalación. Ahora está listo para crear una CSR de práctica con openssl.

El primer paso que debe completar para crear una CSR es generar una clave privada. Para crear una clave privada con openssl, crea un directorio practice-csr y luego genera una clave dentro de él. Haremos esta solicitud para un servidor ficticio llamado sammy-server, a diferencia de la creación de un certificado que se utiliza para identificar a un usuario o a otra CA.

  • mkdir ~/practice-csr
  • cd ~/practice-csr
  • openssl genrsa -out sammy-server.key
Output
Generating RSA private key, 2048 bit long modulus (2 primes). . .. . .e is 65537 (0x010001)

Ahora que tiene una clave privada puede crear un CSR correspondiente, de nuevo utilizando la utilidad openssl. Se le pedirá que rellene una serie de campos como País, Estado y Ciudad. Puedes introducir un . si quieres dejar un campo en blanco, pero ten en cuenta que si se tratara de un CSR real, es mejor utilizar los valores correctos para tu ubicación y organización:

  • openssl req -new -key sammy-server.key -out sammy-server.req
Output
. . .-----Country Name (2 letter code) :USState or Province Name (full name) :New YorkLocality Name (eg, city) :New York CityOrganization Name (eg, company) :DigitalOceanOrganizational Unit Name (eg, section) :CommunityCommon Name (eg, your name or your server's hostname) :sammy-serverEmail Address :Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password :An optional company name :

Si quieres añadir automáticamente esos valores como parte de la invocación de openssl en lugar de a través del prompt interactivo, puedes pasar el argumento -subj a OpenSSL. Asegúrese de editar los valores resaltados para que coincidan con la ubicación de su consultorio, la organización y el nombre del servidor:

  • openssl req -new -key sammy-server.key -out server.req -subj \
  • /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/OU=Community/CN=sammy-server

Para verificar el contenido de una CSR, puede leer un archivo de solicitud con openssl y examinar los campos que contiene:

  • openssl req -in sammy-server.req -noout -subject
Output
subject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server

Una vez que esté satisfecho con el asunto de su solicitud de certificado de práctica, copie el archivo sammy-server.req a su servidor de CA utilizando scp:

  • scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req

En este paso ha generado una solicitud de firma de certificado para un servidor ficticio llamado sammy-server. En un escenario del mundo real, la solicitud podría provenir de algo como un servidor web de ensayo o desarrollo que necesita un certificado TLS para pruebas; o podría provenir de un servidor OpenVPN que está solicitando un certificado para que los usuarios puedan conectarse a una VPN. En el siguiente paso, procederemos a firmar la solicitud de firma de certificado utilizando la clave privada del servidor CA.

(Opcional) – Firmar una CSR

En el paso anterior, creó una solicitud de certificado de práctica y una clave para un servidor ficticio. Lo ha copiado en el directorio /tmp de su servidor de CA, emulando el proceso que utilizaría si tuviera clientes o servidores reales que le enviaran solicitudes de CSR que necesitan ser firmadas.

Continuando con el escenario ficticio, ahora el servidor de CA necesita importar el certificado de práctica y firmarlo. Una vez que una solicitud de certificado es validada por la CA y retransmitida a un servidor, los clientes que confían en la Autoridad de Certificación también podrán confiar en el certificado recién emitido.

Dado que estaremos operando dentro de la PKI de la CA, donde la utilidad easy-rsa está disponible, los pasos de firma utilizarán la utilidad easy-rsa para facilitar las cosas, en lugar de utilizar el openssl directamente como hicimos en el ejemplo anterior.

El primer paso para firmar el CSR ficticio es importar la solicitud de certificado utilizando el script easy-rsa:

  • cd ~/easy-rsa
  • ./easyrsa import-req /tmp/sammy-server.req sammy-server
Output
. . .The request has been successfully imported with a short name of: sammy-serverYou may now use this name to perform signing operations on this request.

Ahora puede firmar la solicitud ejecutando el script easyrsa con la opción sign-req, seguido del tipo de solicitud y el Nombre Común que se incluye en el CSR. El tipo de solicitud puede ser uno de los siguientes: client, server o ca. Como estamos practicando con un certificado para un servidor ficticio, asegúrese de utilizar el tipo de solicitud server:

  • ./easyrsa sign-req server sammy-server

En la salida, se le pedirá que verifique que la solicitud proviene de una fuente de confianza. Escriba yes y pulse ENTER para confirmarlo:

Output
You are about to sign the following certificate.Please check over the details shown below for accuracy. Note that this requesthas not been cryptographically verified. Please be sure it came from a trustedsource or that you have verified the request checksum with the sender.Request subject, to be signed as a server certificate for 3650 days:subject= commonName = sammy-serverType the word 'yes' to continue, or any other input to abort. Confirm request details: yes. . .Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

Si ha cifrado su clave de CA, se le pedirá su contraseña en este punto.

Con estos pasos completados, ha firmado el sammy-server.req CSR utilizando la clave privada del servidor de CA en /home/sammy/easy-rsa/pki/private/ca.key. El archivo sammy-server.crt resultante contiene la clave pública de cifrado del servidor de prácticas, así como una nueva firma del Servidor CA. El objetivo de la firma es indicar a cualquiera que confíe en la CA que también puede confiar en el certificado sammy-server.

Si esta solicitud fuera para un servidor real como un servidor web o un servidor VPN, el último paso del Servidor CA sería distribuir los nuevos archivos sammy-server.crt y ca.crt del Servidor CA al servidor remoto que hizo la solicitud de CSR:

  • scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
  • scp pki/ca.crt sammy@your_server_ip:/tmp

En este punto, se podría utilizar el certificado emitido con algo como un servidor web, una VPN, una herramienta de gestión de la configuración, un sistema de base de datos o para fines de autenticación de clientes.

(Opcional) – Revocar un certificado

Ocasionalmente, puede necesitar revocar un certificado para evitar que un usuario o servidor lo utilice. Tal vez el portátil de alguien fue robado, un servidor web fue comprometido, o un empleado o contratista ha dejado su organización.

Para revocar un certificado, el proceso general sigue estos pasos:

  1. Revocar el certificado con el comando ./easyrsa revoke client_name.
  2. Generar una nueva CRL con el comando ./easyrsa gen-crl.
  3. Transfiera el archivo crl.pem actualizado al servidor o servidores que dependen de su CA, y en esos sistemas cópielo en el directorio o directorios necesarios para los programas que hacen referencia a él.
  4. Reinicie cualquier servicio que utilice su CA y el archivo CRL.

Puede utilizar este proceso para revocar cualquier certificado que haya emitido previamente en cualquier momento. Repasaremos cada paso en detalle en las siguientes secciones, empezando por el comando revoke.

Revocar un certificado

Para revocar un certificado, navegue hasta el directorio easy-rsa en su servidor de CA:

  • cd ~/easy-rsa

A continuación, ejecute el script easyrsa con la opción revoke, seguido del nombre del cliente que desea revocar. Siguiendo el ejemplo de la práctica anterior, el nombre común del certificado es sammy-server:

  • ./easyrsa revoke sammy-server

Esto le pedirá que confirme la revocación introduciendo yes:

Output
Please confirm you wish to revoke the certificate with the following subject:subject= commonName = sammy-serverType the word 'yes' to continue, or any other input to abort. Continue with revocation: yes. . .Revoking Certificate 8348B3F146A765581946040D5C4D590A. . .

Note el valor resaltado en la línea Revoking Certificate. Este valor es el número de serie único del certificado que se está revocando. Si quiere examinar la lista de revocación en el último paso de esta sección para verificar que el certificado está en ella, necesitará este valor.

Después de confirmar la acción, la CA revocará el certificado. Sin embargo, los sistemas remotos que dependen de la CA no tienen forma de comprobar si se ha revocado algún certificado. Los usuarios y servidores podrán seguir utilizando el certificado hasta que la lista de revocación de certificados (CRL) de la CA se distribuya a todos los sistemas que dependen de la CA.

En el siguiente paso generará una CRL o actualizará un archivo crl.pem existente.

Generación de una lista de revocación de certificados

Ahora que ha revocado un certificado, es importante actualizar la lista de certificados revocados en su servidor de CA. Una vez que tenga una lista de revocación actualizada, podrá saber qué usuarios y sistemas tienen certificados válidos en su CA.

Para generar una CRL, ejecute el comando easy-rsa con la opción gen-crl mientras sigue dentro del directorio ~/easy-rsa:

  • ./easyrsa gen-crl

Si ha utilizado una frase de contraseña al crear su archivo ca.key, se le pedirá que la introduzca. El comando gen-crl generará un archivo llamado crl.pem, que contiene la lista actualizada de certificados revocados para esa CA.

Luego tendrá que transferir el archivo crl.pem actualizado a todos los servidores y clientes que dependen de esta CA cada vez que ejecute el comando gen-crl. De lo contrario, los clientes y sistemas podrán seguir accediendo a los servicios y sistemas que utilizan su CA, ya que esos servicios necesitan conocer el estado de revocación del certificado.

Transferencia de una lista de revocación de certificados

Ahora que ha generado una CRL en su servidor de CA, necesita transferirla a los sistemas remotos que dependen de su CA. Para transferir este archivo a sus servidores, puede utilizar el comando scp.

Nota: Este tutorial explica cómo generar y distribuir una CRL manualmente. Aunque hay métodos más robustos y automatizados para distribuir y comprobar las listas de revocación como OCSP-Stapling, la configuración de esos métodos está más allá del alcance de este artículo.

Asegúrese de que ha iniciado sesión en su servidor de CA como su usuario no root y ejecute lo siguiente, sustituyendo en su propio servidor la IP o el nombre DNS en lugar de your_server_ip:

  • scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp

Ahora que el archivo está en el sistema remoto, el último paso es actualizar cualquier servicio con la nueva copia de la lista de revocación.

Actualización de los servicios que admiten una CRL

Enumerar los pasos que debe utilizar para actualizar los servicios que utilizan el archivo crl.pem está fuera del alcance de este tutorial. En general, tendrá que copiar el archivo crl.pem en la ubicación que el servicio espera y luego reiniciarlo usando systemctl.

Una vez que haya actualizado sus servicios con el nuevo archivo crl.pem, sus servicios podrán rechazar conexiones de clientes o servidores que estén usando un certificado revocado.

Examen y verificación del contenido de una CRL

Si desea examinar un archivo CRL, por ejemplo para confirmar una lista de certificados revocados, utilice el siguiente comando openssl desde el directorio easy-rsa de su servidor de CA:

  • cd ~/easy-rsa
  • openssl crl -in pki/crl.pem -noout -text

También puede ejecutar este comando en cualquier servidor o sistema que tenga instalada la herramienta openssl con una copia del archivo crl.pem. Por ejemplo, si ha transferido el archivo crl.pem a su segundo sistema y desea verificar que el certificado sammy-server está revocado, puede utilizar un comando openssl como el siguiente, sustituyendo el número de serie que anotó anteriormente cuando revocó el certificado en lugar del resaltado aquí:

  • openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output
Serial Number: 8348B3F146A765581946040D5C4D590A Revocation Date: Apr 1 20:48:02 2020 GMT

Note cómo el comando grep se utiliza para comprobar el número de serie único que anotó en el paso de revocación. Ahora puede verificar el contenido de su lista de revocación de certificados en cualquier sistema que dependa de ella para restringir el acceso a usuarios y servicios.

Conclusión

En este tutorial ha creado una autoridad de certificación privada utilizando el paquete Easy-RSA en un servidor independiente de Ubuntu 20.04. Aprendiste cómo funciona el modelo de confianza entre las partes que dependen de la CA. También creó y firmó una Solicitud de Firma de Certificado (CSR) para un servidor de práctica y luego aprendió cómo revocar un certificado. Por último, aprendió a generar y distribuir una lista de revocación de certificados (CRL) para cualquier sistema que dependa de su CA, a fin de garantizar que los usuarios o servidores que no deberían acceder a los servicios no lo hagan.

Ahora puede emitir certificados para los usuarios y utilizarlos con servicios como OpenVPN. También puede utilizar su CA para configurar los servidores web de desarrollo y de ensayo con certificados para asegurar sus entornos de no producción. El uso de una CA con certificados TLS durante el desarrollo puede ayudar a garantizar que su código y sus entornos se ajusten al máximo a su entorno de producción.

Si desea obtener más información sobre el uso de OpenSSL, nuestra publicación OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs tutorial tiene mucha información adicional para ayudarle a familiarizarse con los fundamentos de OpenSSL.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.