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)
- 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"
- 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
.