Esta guía te muestra cómo generar un CSR (Certificate Signing Request) en Red Hat Enterprise Linux usando la línea de comandos de OpenSSL. El proceso genera dos archivos:
- Una clave privada, que permanece en tu servidor y nunca se comparte.
- Un CSR, que envías a tu Autoridad de Certificación (CA) cuando solicitas el certificado.
Cubre dos enfoques: un método de un solo comando para OpenSSL moderno, y un método con archivo de configuración para versiones más antiguas de OpenSSL que no admiten extensiones en línea. Ambos generan un CSR compatible con SAN firmado con SHA-256, que es lo que exigen las CA públicas.
Antes de empezar: comprueba tu versión de OpenSSL
OpenSSL viene incluido de forma predeterminada en todas las versiones compatibles de RHEL. Confirma que está presente y comprueba la versión, porque la versión determina qué método de los siguientes puedes usar:
openssl version
Lo que incluye cada versión actual de Red Hat:
- RHEL 10 (lanzado en 2025, la versión principal actual): OpenSSL 3.x
- RHEL 9: OpenSSL 3.x
- RHEL 8: OpenSSL 1.1.1
- RHEL 7: OpenSSL 1.0.2 (RHEL 7 llegó al fin del soporte de mantenimiento en 2024; migra estas cargas de trabajo a una versión compatible cuando puedas)
OpenSSL 1.1.1 y 3.x admiten el indicador de extensión en línea que se usa en el método de un solo comando, así que en RHEL 8, 9 y 10 puedes usar la Opción A a continuación. Si openssl version indica 1.0.2 o una versión anterior (RHEL 7), usa el método con archivo de configuración de la Opción B.
Si por alguna razón OpenSSL no está instalado, instálalo con el gestor de paquetes correspondiente a tu versión:
# RHEL 8, 9, and 10
sudo dnf install openssl
# RHEL 7
sudo yum install openssl
En RHEL 8 y versiones posteriores, yum es un alias de compatibilidad para dnf, así que cualquiera de los dos comandos funciona en esas versiones.
Opción A: un solo comando (OpenSSL 1.1.1 y 3.x)
Este es el camino más rápido en RHEL 8, 9 y 10. Primero genera la clave privada, y después crea el CSR con los Nombres Alternativos del Sujeto (SAN) añadidos en línea.
Paso 1: Genera la clave privada
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key
Esto crea una clave privada RSA de 2048 bits llamada example.com.key en el directorio actual. RSA de 2048 bits es el mínimo aceptado por las CA públicas; para usar en su lugar una clave moderna de curva elíptica, sustituye las opciones del algoritmo por -algorithm EC -pkeyopt ec_paramgen_curve:P-256. Mantén este archivo en privado: permanece en tu servidor y nunca se envía a la CA.
Paso 2: Crea el CSR con SAN
Ejecuta el siguiente comando, ajustando los campos del sujeto y los nombres de dominio según los tuyos:
openssl req -new -sha256 -key example.com.key -out example.com.csr
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=example.com"
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"
Sustituye example.com por tu dominio real en todo el comando, y establece los campos del sujeto con tus datos:
- C: código de país de dos letras (por ejemplo, US).
- ST: nombre completo del estado o provincia.
- L: ciudad o localidad.
- O: nombre legal de la organización (para un certificado DV de un solo dominio se puede omitir).
- CN: el nombre de dominio completamente cualificado principal, por ejemplo www.example.com.
Enumera cada nombre de host que debe cubrir el certificado en el valor de subjectAltName. Los navegadores modernos validan según la lista de SAN, no según el Common Name, así que incluye ahí cada nombre, incluido el dominio principal. El comando escribe el CSR en example.com.csr.
Opción B: método con archivo de configuración (OpenSSL antiguo)
Si openssl version indica una compilación que no admite el indicador -addext (OpenSSL 1.0.2 o anterior, como en RHEL 7), define los SAN en un pequeño archivo de configuración en su lugar.
Paso 1: Crea un archivo de configuración (san.cnf)
Crea un archivo llamado san.cnf con un editor de texto y pega lo siguiente, editando los valores según tu dominio y tu organización:
[ req ]
default_bits = 2048
prompt = no
distinguished_name = dn
req_extensions = req_ext
[ dn ]
C = US
ST = California
L = San Jose
O = Your Company LLC
CN = example.com
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = example.com
DNS.2 = www.example.com
Añade más nombres de host continuando con la numeración: DNS.3, DNS.4, y así sucesivamente.
Paso 2: Genera la clave y el CSR
Genera la clave privada:
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key
Después crea el CSR usando el archivo de configuración:
openssl req -new -sha256 -key example.com.key -out example.com.csr -config san.cnf
Verifica el CSR
Antes de enviarlo, confirma que el CSR contiene los datos correctos y una firma válida. Este comando muestra el sujeto, la lista de SAN, el tamaño de la clave, y verifica la firma propia de la solicitud:
openssl req -noout -text -verify -in example.com.csr
Comprueba que la línea Subject y las entradas de X509v3 Subject Alternative Name incluyan todos los dominios que esperas, que la clave pública sea al menos RSA de 2048 bits (o una clave de curva elíptica P-256), y que el algoritmo de firma sea SHA-256. Una línea que indique certificate request self-signature verify OK (las versiones más antiguas muestran verify OK) significa que el CSR y la clave privada coinciden. Si prefieres usar el navegador, pega el CSR en nuestro decodificador de CSR en línea para revisar los mismos datos.
Envía el CSR
Abre el archivo example.com.csr en un editor de texto y copia todo su contenido, incluidas las líneas marcadoras -----BEGIN CERTIFICATE REQUEST----- y -----END CERTIFICATE REQUEST----- (cada marcador usa cinco guiones a cada lado). Pega todo el bloque en el formulario de pedido cuando solicites el certificado a tu proveedor de SSL.
Mantén la clave privada, example.com.key, en el servidor. No la envíes a la CA ni la pegues en ningún sitio: es la mitad secreta del par y nunca debe salir de tu control. Después de que la CA valide el CSR y emita el certificado, sigue nuestras instrucciones de instalación de SSL en Red Hat Linux para instalarlo.
Preguntas frecuentes
La clave privada se escribe en el archivo que indiques en la opción -out (por ejemplo, example.com.key) en el directorio donde ejecutaste el comando. Se crea localmente y nunca se incluye en el CSR. Guárdala en un lugar seguro y restringe sus permisos, porque necesitas esta clave exacta para instalar el certificado que emita la CA.
Ambas son aceptadas. RSA de 2048 bits es la opción predeterminada de amplia compatibilidad y el mínimo que permiten las CA públicas. Una clave de curva elíptica (ECDSA P-256) es más pequeña y rápida, y ofrece una seguridad equivalente; genérala sustituyendo las opciones de clave por -algorithm EC -pkeyopt ec_paramgen_curve:P-256. En cualquier caso, el CSR debe firmarse con SHA-256, algo que los comandos anteriores ya hacen.
El indicador -addext se añadió en OpenSSL 1.1.1. Si usas una versión anterior (OpenSSL 1.0.2 en RHEL 7, por ejemplo), utiliza el método con archivo de configuración de la Opción B, que define los Nombres Alternativos del Sujeto en un archivo san.cnf en lugar de en la línea de comandos.
Ejecuta openssl req -noout -text -verify -in example.com.csr en el servidor. Muestra el sujeto, la lista completa de SAN, el tipo y tamaño de la clave, y el algoritmo de firma, y confirma que el CSR coincide con su clave privada. Revisa esos campos antes de pegar el CSR en el formulario de pedido.
Pega el bloque completo, desde -----BEGIN CERTIFICATE REQUEST----- hasta -----END CERTIFICATE REQUEST----- inclusive, sin omitir ningún carácter. Ambas líneas marcadoras usan cinco guiones a cada lado. No pegues la clave privada.
Sí. AlmaLinux, Rocky Linux y CentOS Stream son compatibles a nivel binario con la versión correspondiente de RHEL e incluyen el mismo OpenSSL, por lo que los comandos son idénticos. También tenemos un tutorial dedicado sobre cómo generar un CSR en CentOS si lo necesitas.
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

