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. 1

    Pega la CSR

    Incluye los marcadores `-----BEGIN CERTIFICATE REQUEST-----` y `-----END CERTIFICATE REQUEST-----`. Se tolera el espacio en blanco.

  2. 2

    Ejecuta el decodificador

    La solicitud se analiza y se extraen los campos de su sujeto y su clave pública.

  3. 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. 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