Cómo instalar y configurar una entidad de certificación (CA) en Debian 10

Prerrequisitos

  • 1 servidor Debian 10 dedicado para la CA (sin otros servicios).
  • Usuario no root con sudo y firewall básico.
  • Opcional: un segundo Linux (o tu equipo) para probar CSR/firmas.
  • Conexión SSH al servidor CA.

Paso 1 — Instalar Easy-RSA

Usaremos Easy-RSA para crear y gestionar la PKI.

sudo apt update
sudo apt install -y easy-rsa

Paso 2 — Preparar la PKI (infraestructura de clave pública)

Crea el directorio de trabajo, enlaza los scripts del paquete y protege permisos:

mkdir -p ~/easy-rsa
ln -s /usr/share/easy-rsa/* ~/easy-rsa/
chmod 700 ~/easy-rsa
cd ~/easy-rsa
./easyrsa init-pki

Paso 3 — Crear la CA (clave privada + certificado raíz)

  1. Define valores por defecto en vars (país, organización, etc.):
cd ~/easy-rsa
nano vars

Pegar (ajusta la organización):

set_var EASYRSA_REQ_COUNTRY    "ES"
set_var EASYRSA_REQ_PROVINCE "Madrid"
set_var EASYRSA_REQ_CITY "Madrid"
set_var EASYRSA_REQ_ORG "MiEmpresa"
set_var EASYRSA_REQ_EMAIL "admin@miempresa.com"
set_var EASYRSA_REQ_OU "IT"
  1. Genera la CA (te pedirá passphrase; usa una fuerte):
./easyrsa build-ca
# (opcional sin passphrase)
# ./easyrsa build-ca nopass

Salidas clave:

  • ~/easy-rsa/pki/ca.crt → certificado público raíz (se distribuye).
  • ~/easy-rsa/pki/private/ca.key → clave privada secreta (guárdala offline).

Buenas prácticas: guarda ca.key cifrada, con backups offline; apaga o aísla la máquina CA cuando no la uses.

Paso 4 — Distribuir el certificado raíz de la CA a otros sistemas

Linux (Debian/Ubuntu)

Copia ca.crt al sistema destino (scp, rsync o copia/pega) y luego:

sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

Añadir la CA al almacén del sistema.

Linux (RHEL/CentOS/Fedora)

sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

Navegadores y otros entornos

  • Firefox no usa por defecto el almacén del SO; importa la CA en Opciones → Privacidad y seguridad → Certificados → Ver certificados → Autoridades → Importar (o via políticas de empresa).
  • Windows: importa el certificado raíz a Trusted Root Certification Authorities (MMC/Certificados o certutil).

(Opcional) Paso 5 — Crear una CSR de prueba en un cliente

En un segundo equipo Linux:

mkdir -p ~/practice-csr && cd ~/practice-csr
openssl genrsa -out sammy-server.key
openssl req -new -key sammy-server.key -out sammy-server.req \
-subj "/C=ES/ST=Madrid/L=Madrid/O=MiEmpresa/OU=IT/CN=mi-servidor"
# Enviar la CSR a la CA:
scp sammy-server.req usuario@IP_CA:/tmp/sammy-server.req

(Opcional) Paso 6 — Firmar la CSR en la CA

En el servidor CA:

cd ~/easy-rsa
./easyrsa import-req /tmp/sammy-server.req sammy-server
./easyrsa sign-req server sammy-server # escribe: yes

Copiar el certificado emitido y el ca.crt al servidor que lo pidió:

scp pki/issued/sammy-server.crt usuario@IP_SERVIDOR:/tmp
scp pki/ca.crt usuario@IP_SERVIDOR:/tmp

(Opcional) Paso 7 — Revocar certificados y publicar CRL

Cuando un certificado ya no deba ser válido:

~/easy-rsa
./easyrsa revoke sammy-server # confirma: yes
./easyrsa gen-crl # genera pki/crl.pem
# Distribuye la CRL a los servicios que la usen:
scp pki/crl.pem usuario@IP_SERVIDOR:/tmp

Verificar el contenido (y número de serie) donde tengas OpenSSL:

openssl crl -in /tmp/crl.pem -noout -text | grep -A1 SERIAL_DEL_CERT

Asegúrate de recargar/reiniciar los servicios que consultan la CRL

Referencias y ampliación

  • Guía base en Español Debian 10.
  • Variante para Debian 11.
  • Manual update-ca-certificates (Debian/Ubuntu).
  • Importar CA en Firefox (políticas/GUI).
  • CertStore de Windows y certutil.