Decodificador de CSR
Antes de que una Autoridad de Certificación firme un certificado TLS, le entregas una Solicitud de Firma de Certificado (CSR), un bloque de base64 que contiene el sujeto que quieres en el certificado y tu clave pública, además de una firma que demuestra que posees la clave privada correspondiente. Este decodificador toma una CSR codificada en PEM y te muestra los campos de su sujeto y los parámetros de su clave pública, para que puedas comprobar el nombre común, la organización y el tamaño de la clave antes de enviarla a una CA.
Cómo decodificar una CSR
-
1
Pega la CSR
Incluye los marcadores `-----BEGIN CERTIFICATE REQUEST-----` y `-----END CERTIFICATE REQUEST-----`. Se tolera el espacio en blanco.
-
2
Ejecuta el decodificador
La solicitud se analiza y se extraen los campos de su sujeto y su clave pública.
-
3
Revisa la salida
Comprueba los campos del sujeto, como el nombre común y la organización, además del algoritmo y el tamaño de la clave.
-
4
Actúa según el resultado
Si el sujeto o la clave parecen incorrectos, regenera la CSR antes de entregarla a una CA.
Qué muestra el decodificador
Una CSR es una estructura ASN.1 (PKCS #10). El decodificador extrae dos cosas de ella:
- Sujeto: los campos del Nombre Distinguido que se solicitaron, normalmente el país (C), la organización (O), la unidad organizativa (OU), la localidad (L), la provincia (ST) y el nombre común (CN).
- Clave pública: el algoritmo (RSA, EC, DSA) y el tamaño de la clave en bits.
La firma que contiene la CSR es lo que demuestra a la CA que el remitente posee la clave privada correspondiente. Este decodificador no la muestra; la CA la verifica al procesar la solicitud.
Ejemplo de salida
Para una solicitud de certificado de dominio típica, la salida tiene este aspecto:
Subject: commonName=www.example.com, organizationName=Example Inc., countryName=US
Key bits: 2048
Key type: RSA
Los nombres exactos de los atributos del sujeto dependen de cómo se generó la solicitud.
Campos a verificar
- Nombre Común (CN): debe ser el nombre de host principal. Los navegadores modernos ignoran el CN y solo miran los SANs, pero muchas CAs aún requieren un CN válido.
- Nombres Alternativos del Sujeto (SANs): lista cada nombre de host y comodín que el certificado asegurará. Los navegadores coinciden con los SANs, no con el CN.
- País (C): código ISO de 2 letras (US, GB, DE), no un nombre completo. Las CAs rechazan códigos incorrectos.
- Tamaño de clave: RSA 2048 es el mínimo; 3072 o 4096 para mayor seguridad. ECDSA P-256 es una buena alternativa moderna y produce un certificado más pequeño.
- Algoritmo de firma: SHA-256 o mejor. SHA-1 está obsoleto y será rechazado.
Acerca de los Nombres Alternativos del Sujeto (SANs)
El decodificador muestra el sujeto de la solicitud, pero no la extensión SAN. Los navegadores hacen coincidir los certificados con los SANs, no con el CN, así que si el certificado necesita nombres de host adicionales, inclúyelos al generar la solicitud, por ejemplo:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -addext "subjectAltName=DNS:example.com,DNS:www.example.com"
Cuando el decodificador no puede analizar la CSR
Las causas más comunes son un bloque PEM truncado o dañado:
- Texto truncado: vuelve a pegar el bloque completo, incluidos los dos marcadores.
- Saltos de línea añadidos: pega el bloque exactamente como se generó.
- Contenido incorrecto: una clave pública, un certificado o una clave privada pegados por error no se analizarán como una CSR.
Generando la clave correspondiente
Un CSR siempre se genera junto con una clave privada. Comando típico:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr
O para ECDSA:
openssl req -new -newkey ec:<(openssl ecparam -name prime256v1) -nodes -keyout example.key -out example.csr
Protege la clave privada, si se filtra, el certificado debe ser revocado.
Preguntas frecuentes
Un CSR contiene solo información pública (clave pública, sujeto, SANs) más una firma, es seguro compartirlo con una CA o pegarlo en un decodificador. Lo que debe permanecer en secreto es la clave privada correspondiente.
No. Este decodificador espera el formato de texto PEM con los marcadores BEGIN/END CERTIFICATE REQUEST. Para usar una solicitud DER binaria, conviértela antes a PEM, por ejemplo con openssl req -in request.der -inform DER -out request.pem.
No. La mayoría de las CAs públicas (Let’s Encrypt, DigiCert, Sectigo) solo requieren CN y SANs, ignoran O, OU, L, ST, C para certificados validados por dominio. Los certificados validados por organización y de Validación Extendida verifican esos campos por separado.
Casi siempre porque el texto pegado se truncó o se le insertaron saltos de línea, o porque se pegó una clave o un certificado en lugar de una CSR. Vuelve a pegar el bloque completo entre los dos marcadores.
Herramientas relacionadas
Referencia de la tabla ASCII
Tabla ASCII completa del 0 al 127 con decimal, hex, octal, binario y referencia numérica HTML para cada carácter, incluidos los códigos de control como NUL, LF y DEL.
Referencia de caracteres HTML
Lista buscable de entidades HTML, sus códigos nombrados y numéricos, y una copia con un clic para caracteres y símbolos especiales.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Referencia de atajos de teclado
Busca los atajos predeterminados documentados de VS Code, Chrome y Bash con GNU Readline en macOS, Windows y Linux.
Formateador de JSON
Pega JSON para verlo con sangría de 2 o 4 espacios, minificarlo en una salida compacta o comprobar rápidamente la sintaxis antes de copiar el resultado.
Generador de Paletas de Color
Genera paletas monocromáticas, análogas, complementarias, triádicas o tetrádicas desde un color base HEX y exporta variables CSS listas para copiar.