GNU/Linux >> Tutoriales Linux >  >> Panels >> OpenVPN

Cómo establecer y configurar una autoridad de certificación en Ubuntu 22.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 brindan al público en general, las CA privadas generalmente se usan para grupos cerrados y servicios privados.

La creación de 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 usan su propia CA privada son OpenVPN y Puppet. También puede configurar su servidor web para usar certificados emitidos por una CA privada para que los entornos de desarrollo y ensayo coincidan con los servidores de producción que usan TLS para cifrar las conexiones.

En esta guía, configurará una autoridad de certificación privada en un servidor Ubuntu 22.04 y luego generará y firmará un certificado de prueba con su nueva CA. También aprenderá cómo importar el certificado público del servidor de la CA al almacén de certificados de su sistema operativo para que pueda verificar la cadena de confianza entre la CA y los servidores o usuarios remotos. Finalmente, aprenderá cómo revocar certificados y distribuir una Lista de revocación de certificados para asegurarse de que solo los usuarios y sistemas autorizados puedan usar los servicios que dependen de su CA.

Requisitos

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

Este servidor se denominará Servidor CA en este tutorial.

Asegúrese de que el servidor CA sea un sistema independiente. Solo se utilizará para importar, firmar y revocar solicitudes de certificados. No debe ejecutar ningún otro servicio e, idealmente, estará fuera de línea o completamente cerrado cuando no esté trabajando activamente con su CA.

Nota: La última sección de este tutorial es opcional si desea obtener información sobre cómo firmar y revocar certificados. Si elige completar esos pasos de práctica, necesitará un segundo servidor Ubuntu 22.04 o también puede usar su propia computadora Linux local con Ubuntu o Debian, o distribuciones derivadas de cualquiera de ellos.

Paso 1:Instalación de Easy-RSA

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

Inicie sesión en su servidor CA como el usuario sudo no raíz que creó durante los pasos de configuración inicial y ejecute lo siguiente:

  1. sudo apt update
  2. sudo apt install easy-rsa

Se le pedirá que descargue el paquete y lo instale. Pulsa 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 luego comenzará a construir su autoridad de certificación.

Paso 2:preparar un directorio de infraestructura de clave pública

Ahora que ha instalado easy-rsa , es hora de crear una infraestructura de clave pública (PKI) básica en el servidor CA. Asegúrese de seguir conectado como su usuario no root y cree un easy-rsa directorio. Asegúrate de no usar sudo para ejecutar cualquiera de los siguientes comandos, ya que su usuario normal debe administrar e interactuar con la CA sin privilegios elevados.

  1. mkdir ~/easy-rsa

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

Crea los enlaces simbólicos con ln comando:

  1. ln -s /usr/share/easy-rsa/* ~/easy-rsa/

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

Para restringir el acceso a su nuevo directorio PKI, asegúrese de que solo el propietario pueda acceder mediante chmod comando:

  1. chmod 700 /home/sammy/easy-rsa

Finalmente, inicialice la PKI dentro del easy-rsa directorio:

  1. cd ~/easy-rsa
  2. ./easyrsa init-pki
Outputinit-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, tiene 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 certificadora

Antes de que pueda crear la clave privada y el certificado de su CA, debe crear y completar un archivo llamado vars con algunos valores predeterminados. Primero cd en el easy-rsa directorio, luego creará y editará el vars archivo con nano o su editor de texto preferido:

  1. cd ~/easy-rsa
  2. nano vars

Una vez abierto el archivo, pegue las siguientes líneas y edite cada valor resaltado para reflejar la información de su propia organización. La parte importante aquí es asegurarse de no dejar ninguno de los valores en blanco:

~/easy-rsa/varsset_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 está utilizando nano , puedes hacerlo presionando CTRL+X , luego Y y ENTER para confirmar. Ahora está listo para construir su CA.

Para crear el par de claves raíz pública y privada para su autoridad de certificación, ejecute ./easy-rsa comando de nuevo, esta vez con build-ca opción:

  1. ./easyrsa build-ca

En el resultado, verá algunas líneas sobre la versión de OpenSSL y se le pedirá que ingrese una frase de contraseña para su par de claves. Asegúrese de elegir una frase de contraseña segura y anótela en un lugar seguro. Deberá ingresar 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 que se usa para referirse a esta máquina en el contexto de la Autoridad de certificación. Puede ingresar cualquier cadena de caracteres para el Nombre común de la CA, pero por razones de simplicidad, presione ENTER para aceptar el nombre predeterminado.

Output. . .
Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
. . .
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:

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 desea que se le solicite una contraseña cada vez que interactúe con su CA, puede ejecutar build-ca comando con el nopass opción, así:

  1. ./easyrsa build-ca nopass

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

  • ca.crt es el archivo de 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. Cada usuario y servidor que use su CA necesitará tener una copia de este archivo. Todas las partes confiarán en el certificado público para asegurarse de que alguien no se haga pasar por un sistema y realice un ataque Man-in-the-middle.

  • ca.key es la clave privada que utiliza la CA para firmar certificados para servidores y clientes. Si un atacante obtiene acceso a su CA y, a su vez, a su ca.key archivo, deberá destruir su CA. Esta es la razón por la cual su ca.key el archivo debe solo estar en su máquina CA y que, idealmente, su máquina CA debe mantenerse fuera de línea cuando no esté firmando solicitudes de certificado como medida de seguridad adicional.

Con eso, su CA está en su lugar y está lista para usarse para firmar solicitudes de certificados y revocar certificados.

Paso 4:Distribuir el certificado público de la autoridad de certificación

Ahora su CA está configurada y lista para actuar como una raíz de confianza para cualquier sistema que desee configurar para usarla. Puede agregar el certificado de 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 ca.crt archivo importado en el almacén de certificados de su sistema operativo.

Para importar el certificado público de la CA a un segundo sistema Linux como otro servidor o una computadora local, primero obtenga una copia de ca.crt archivo de su servidor CA. Puedes usar el cat comando para generarlo en una terminal, y luego copiarlo y pegarlo en un archivo en la segunda computadora que está importando el certificado. También puedes usar herramientas como scp , rsync para transferir el archivo entre sistemas. Sin embargo, usaremos copiar y pegar con nano en este paso ya que funcionará en todos los sistemas.

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

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

Habrá una salida en su terminal similar a la siguiente:

Output-----BEGIN CERTIFICATE-----
MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw
. . .
. . .
-----END CERTIFICATE-----

Copie todo, incluido el -----BEGIN CERTIFICATE----- y -----END CERTIFICATE----- líneas y guiones.

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

  1. 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 está utilizando nano , puedes hacerlo presionando CTRL+X , luego Y y ENTER para confirmar.

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

En los 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
  1. sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  2. sudo update-ca-certificates

Para importar el certificado del servidor CA en un sistema basado 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/ , luego ejecute update-ca-trust comando.

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

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

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

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

Si está utilizando este tutorial como requisito previo para otro tutorial, o está familiarizado con cómo firmar y revocar certificados, puede detenerse aquí. Si desea obtener más información sobre cómo firmar y revocar certificados, 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 completó todos los pasos anteriores, entonces tiene una autoridad de certificación completamente configurada y en funcionamiento que puede usar como requisito previo para otros tutoriales. Puede importar el ca.crt de su CA archivar y verificar certificados en su red que hayan sido firmados por su CA.

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

(Opcional) — Crear y firmar 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, que identifica información sobre el sistema solicitante, y una firma de la solicitud en sí, que se crea utilizando la clave privada de la parte solicitante. La clave privada se mantendrá en secreto y se utilizará para cifrar 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 una computadora portátil o de escritorio. Desde easy-rsa no está disponible de forma predeterminada en todos los sistemas, usaremos el openssl herramienta para crear una clave privada y un certificado de práctica.

openssl generalmente se instala de forma predeterminada en la mayoría de las distribuciones de Linux, pero solo para estar seguro, ejecute lo siguiente en su sistema:

  1. sudo apt update
  2. sudo apt install openssl

Cuando se le solicite instalar openssl ingresa y para continuar con los pasos de instalación. Ahora está listo para crear un 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 usando openssl , crea un practice-csr directorio y luego generar una clave dentro de él. Haremos esta solicitud para un servidor ficticio llamado sammy-server , en lugar de crear un certificado que se utilice para identificar a un usuario u otra CA.

  1. mkdir ~/practice-csr
  2. cd ~/practice-csr
  3. openssl genrsa -out sammy-server.key

Ahora que tiene una clave privada, puede crear una CSR correspondiente, nuevamente usando openssl utilidad. Se le pedirá que complete una serie de campos como País, Estado y Ciudad. Puede ingresar un . si desea dejar un campo en blanco, pero tenga en cuenta que si se tratara de un CSR real, es mejor utilizar los valores correctos para su ubicación y organización:

  1. openssl req -new -key sammy-server.key -out sammy-server.req
Output. . .
-----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:New York
Locality Name (eg, city) [Default City]:New York City
Organization Name (eg, company) [Default Company Ltd]:DigitalOcean
Organizational Unit Name (eg, section) []:Community
Common Name (eg, your name or your server's hostname) []:sammy-server
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Si desea agregar automáticamente esos valores como parte de openssl invocación en lugar de a través del indicador interactivo, puede pasar el -subj argumento para OpenSSL. Asegúrese de editar los valores resaltados para que coincidan con la ubicación de su práctica, la organización y el nombre del servidor:

  1. openssl req -new -key sammy-server.key -out server.req -subj \
  2. /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 examina los campos dentro:

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

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

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

En este paso, generó 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 así como un servidor web de prueba o desarrollo que necesita un certificado TLS para la prueba; o podría provenir de un servidor OpenVPN que solicita un certificado para que los usuarios puedan conectarse a una VPN. En el siguiente paso, procederemos a firmar la solicitud de firma del certificado utilizando la clave privada del servidor CA.

(Opcional) — Firmar un CSR

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

Continuando con el escenario ficticio, ahora el servidor CA necesita importar el certificado de práctica y firmarlo. Una vez que la CA valida una solicitud de certificado y la reenvía 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 easy-rsa la utilidad está disponible, los pasos de firma usarán el easy-rsa utilidad para hacer las cosas más fáciles, en lugar de usar el openssl directamente como hicimos en el ejemplo anterior.

El primer paso para firmar la CSR ficticia es importar la solicitud de certificado usando easy-rsa guión:

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

Ahora puede firmar la solicitud ejecutando easyrsa secuencia de comandos con sign-req opción, seguida del tipo de solicitud y el nombre común que se incluye en el CSR. El tipo de solicitud puede ser uno de client , server , o ca . Como estamos practicando con un certificado para un servidor ficticio, asegúrese de usar el server tipo de solicitud:

  1. ./easyrsa sign-req server sammy-server

En el resultado, se le pedirá que verifique que la solicitud proviene de una fuente confiable. Escribe yes luego presione ENTER para confirmar esto:

OutputYou are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a server certificate for 825 days:

subject=
    countryName               = US
    stateOrProvinceName       = New York
    localityName              = New York City
    organizationName          = DigitalOcean
    organizationalUnitName    = Community
    commonName                = sammy-server


Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
. . .

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

Recibirá un resultado como el siguiente:

OutputCheck that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'US'
stateOrProvinceName   :ASN.1 12:'New York'
localityName          :ASN.1 12:'New York City'
organizationName      :ASN.1 12:'DigitalOcean'
organizationalUnitName:ASN.1 12:'Community'
commonName            :ASN.1 12:'sammy-server'
Certificate is to be certified until Jul 21 13:59:08 2024 GMT (825 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

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

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

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

En este punto, podrá usar el certificado emitido con algo como un servidor web, una VPN, una herramienta de administración de configuración, un sistema de base de datos o con fines de autenticación de clientes.

(Opcional) — Revocación de un Certificado

Ocasionalmente, es posible que deba revocar un certificado para evitar que un usuario o servidor lo use. Tal vez le robaron la computadora portátil a alguien, se comprometió un servidor web o un empleado o contratista abandonó su organización.

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

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

Puede utilizar este proceso para revocar cualquier certificado que haya emitido anteriormente en cualquier momento. Repasaremos cada paso en detalle en las siguientes secciones, comenzando con revoke comando.

Revocación de un certificado

Para revocar un certificado, vaya a easy-rsa directorio en su servidor CA:

  1. cd ~/easy-rsa

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

  1. ./easyrsa revoke sammy-server

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

OutputPlease confirm you wish to revoke the certificate with the following subject:

subject=
    commonName                = sammy-server


Type the word 'yes' to continue, or any other input to abort.
  Continue with revocation: yes
. . .
Revoking Certificate 8348B3F146A765581946040D5C4D590A
. . .

Tenga en cuenta el valor resaltado en el Revoking Certificate línea. Este valor es el número de serie único del certificado que se revoca. Si desea 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 aún podrán usar 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á una crl.pem existente. archivo.

Generando una lista de revocación de certificados

Ahora que ha revocado un certificado, es importante actualizar la lista de certificados revocados en su servidor 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 easy-rsa comando con el gen-crl opción mientras aún está dentro de ~/easy-rsa directorio:

  1. ./easyrsa gen-crl

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

A continuación, deberá transferir el crl.pem actualizado archivo a todos los servidores y clientes que dependen de esta CA cada vez que ejecuta gen-crl dominio. De lo contrario, los clientes y los sistemas aún podrán acceder a los servicios y sistemas que usan su CA, ya que esos servicios necesitan conocer el estado revocado del certificado.

Transferir una lista de revocación de certificados

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

Nota: Este tutorial explica cómo generar y distribuir una CRL manualmente. Si bien existen métodos más robustos y automatizados para distribuir y verificar listas de revocación como OCSP-Stapling, configurar esos métodos está más allá del alcance de este artículo.

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

  1. 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 servicios que admiten una CRL

Enumerar los pasos que debe seguir para actualizar los servicios que utilizan crl.pem archivo está más allá del alcance de este tutorial. En general, deberá copiar el crl.pem archivo en la ubicación que espera el servicio y luego reinícielo usando systemctl .

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

Examinar y verificar el contenido de una CRL

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

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

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

  1. openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output    Serial Number: 8348B3F146A765581946040D5C4D590A
        Revocation Date: Apr 18 14:00:37 2022 GMT

Observe cómo grep El comando se usa para verificar 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, creó una autoridad de certificación privada utilizando el paquete Easy-RSA en un servidor Ubuntu 22.04 independiente. Exploró 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. Finally, you learned how to generate and distribute a Certificate Revocation List (CRL) for any system that relies on your CA to ensure that users or servers that should not access services are prevented from doing so.

Now you can issue certificates for users and use them with services like OpenVPN. You can also use your CA to configure development and staging web servers with certificates to secure your non-production environments. Using a CA with TLS certificates during development can help ensure that your code and environments match your production environment as closely as possible.

If you would like to learn more about how to use OpenSSL, our OpenSSL Essentials:Working with SSL Certificates, Private Keys and CSRs tutorial has lots of additional information to help you become more familiar with OpenSSL fundamentals.


OpenVPN
  1. Cómo configurar un servidor NFS y montar recursos compartidos NFS en Ubuntu 14.10

  2. Cómo instalar y configurar el servidor DHCP en Ubuntu 20.04

  3. Cómo instalar y configurar el servidor Redis en Ubuntu

  4. Cómo configurar WireGuard en Ubuntu 22.04

  5. Cómo configurar el servidor y el cliente NFS en Ubuntu 20.04

Cómo instalar y configurar un servidor OpenVPN en Ubuntu 22.04

Cómo instalar y configurar el servidor OpenLDAP en Ubuntu 16.04

Cómo instalar y configurar VNC en Ubuntu Server 20.04

Cómo instalar y configurar Parse Server en Ubuntu 20.04

Cómo instalar y configurar un servidor TeamSpeak en Ubuntu 18.04

Cómo instalar y configurar un servidor de Minecraft en Ubuntu 18.04