Esta guía te muestra cómo generar un CSR (Certificate Signing Request) en Debian usando la línea de comandos de OpenSSL. Ejecutas un único comando por SSH que crea dos archivos a la vez: una clave privada que permanece en tu servidor y el CSR que envías a tu Autoridad de Certificación (CA). Los pasos funcionan en Debian 13 (trixie), Debian 12 (bookworm) y versiones anteriores, ya que OpenSSL viene incluido en el sistema base.
Un CSR es un pequeño bloque de texto que contiene los datos de tu dominio y una clave pública. La CA lo lee, valida tu solicitud y emite un certificado que coincide con la clave privada creada junto a él. La clave privada nunca sale de tu servidor, así que mantenla a salvo: si la pierdes, el certificado emitido queda inutilizable y tendrás que empezar de nuevo.
Paso 1: Inicia sesión en tu servidor Debian
Abre una terminal y conéctate al servidor por SSH. Reemplaza your-user con el nombre de tu cuenta y your-server-ip con la dirección IP o el nombre de host del servidor:
ssh your-user@your-server-ip
OpenSSL está incluido en el sistema base de Debian, así que no hay nada adicional que instalar. Para confirmar que está disponible, verifica la versión:
openssl version
Paso 2: Genera la clave privada y el CSR
Ejecuta el siguiente comando. Crea la clave privada y el CSR en un solo paso e incluye los Subject Alternative Names (SANs) que exigen los navegadores y las CA modernas. Ejecútalo desde un directorio en el que tengas permisos de escritura, como tu directorio de inicio:
openssl req -new -newkey rsa:2048 -nodes
-keyout mywebsite.key
-out mywebsite.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mywebsite.com"
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
Esto es lo que hace cada parte:
- req -new crea una nueva solicitud de firma de certificado.
- -newkey rsa:2048 genera una nueva clave privada RSA de 2048 bits. 2048 bits es el mínimo actual para certificados públicos; puedes usar rsa:4096 para una clave más grande.
- -nodes deja la clave privada sin cifrar (sin frase de contraseña), para que el servidor web pueda iniciarse sin pedir una contraseña.
- -keyout mywebsite.key escribe la clave privada. Mantén este archivo en privado y nunca lo envíes a nadie.
- -out mywebsite.csr escribe el CSR que envías a la CA.
- -subj completa los campos del sujeto en línea para que el comando se ejecute sin solicitudes interactivas. Configura CN (Common Name) con tu nombre de dominio completamente calificado.
- -addext «subjectAltName=…» agrega las entradas SAN. Las CA emiten el certificado según la lista SAN, así que incluye cada nombre de host que el certificado debe cubrir.
Reemplaza mywebsite.com con tu dominio real y edita los valores de -subj para que coincidan con tu organización. El código de país de dos letras (C) debe ir en mayúsculas, por ejemplo US o GB. Para un certificado con validación de dominio (DV), los campos de la organización no se verifican, pero el comando aún necesita valores válidos.
Si prefieres completar los campos de forma interactiva en lugar de usar -subj, omite esa línea y OpenSSL te pedirá cada valor:
openssl req -new -newkey rsa:2048 -nodes
-keyout mywebsite.key
-out mywebsite.csr
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
Cuando se te solicite, deja en blanco la contraseña de desafío y el nombre de empresa opcional presionando Enter. Las CA ignoran esos campos, y una contraseña de desafío puede causar problemas más adelante.
Agregar más dominios o un comodín
Agrega más nombres de host a la lista SAN, separados por comas. Por ejemplo, para incluir un subdominio de API:
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com,DNS:api.mywebsite.com"
Para un certificado comodín, usa *.mywebsite.com. Un comodín cubre un nivel de subdominios, pero no el dominio raíz, así que incluye ambos si quieres que el dominio principal también quede cubierto:
-addext "subjectAltName=DNS:*.mywebsite.com,DNS:mywebsite.com"
¿Prefieres una clave ECDSA?
Las claves ECDSA son más pequeñas y rápidas que las RSA al mismo nivel de seguridad, y cuentan con amplio soporte. Para generar una clave y un CSR P-256 (prime256v1) en su lugar, cambia el argumento -newkey:
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes
-keyout mywebsite.key
-out mywebsite.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mywebsite.com"
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
Las versiones modernas de OpenSSL firman el CSR con SHA-256 por defecto, que es lo que exigen las CA. No es necesario agregar un indicador de resumen adicional.
Paso 3: Verifica el CSR
Antes de enviar la solicitud, confirma que contiene el dominio y los SAN correctos, y que su firma es válida. Este comando muestra el contenido decodificado y verifica la firma localmente:
openssl req -noout -text -verify -in mywebsite.csr
Busca verify OK en el resultado, comprueba que la línea Subject muestre tu Common Name y confirma que la sección X509v3 Subject Alternative Name incluya cada nombre de host que esperas. Si falta un SAN, vuelve a generar el CSR con el valor correcto de -addext. También puedes pegar el CSR en nuestro decodificador de CSR en línea para revisar estos campos desde el navegador.
Paso 4: Envía el CSR
Abre el archivo CSR y copia todo su contenido, incluidas las líneas BEGIN y END:
cat mywebsite.csr
El bloque se ve así. Copia todo desde la primera línea hasta la última, incluidos los cinco guiones a cada lado de los marcadores BEGIN y END:
-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----
Pega ese bloque en tu formulario de pedido de SSL. Después de que la CA valide el CSR y emita el certificado SSL, sigue las instrucciones de instalación de SSL en Debian para implementarlo. Conserva el archivo mywebsite.key en el servidor: lo necesitas junto con el certificado emitido para habilitar HTTPS, y nunca debes enviarlo a la CA ni a nadie más.
Si prefieres no usar la línea de comandos, puedes generar la solicitud con nuestro Generador de CSR y pegar el resultado en tu pedido.
Genera un CSR en otras plataformas
¿Usas una distribución de Linux o un servidor diferente? Consulta nuestras otras guías de CSR:
Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.
Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10

