Generador de CSR
Genere una solicitud de firma de certificado y la clave privada que la acompaña, aquí mismo en esta página. El par de claves lo genera la Web Crypto de su navegador y nunca sale de su equipo: nada de lo que escriba ni ninguna clave se envía a nuestro servidor ni al de nadie más.
Uno por línea. El primero también pasa a ser el nombre común.
La opción predeterminada razonable: tan fuerte como RSA 3072 y mucho más pequeña.
El nombre legal de su organización, tal como está registrado.
Escríbalo completo, sin abreviarlo.
Dos letras, el código ISO 3166-1.
Dos letras, el código ISO 3166-1.
Qué pedirUna CA pública los define según su propio perfil. Una CA privada puede querer que se pidan.
Solo si su CA se la pidió. La inscripción SCEP la usa; un pedido de certificado web, no.
El par de claves lo genera su navegador y nunca se envía a ningún lado.
Lo que está a punto de enviarECDSA P-256 · SHA-256
Escriba un nombre o pruebe un ejemplo, y esta columna le muestra qué haría una autoridad de certificación con la solicitud, antes de generarla.
El par de claves lo genera la Web Crypto de su navegador, en un marco que no puede conectarse a ningún lado, y nunca se envía. Abra el panel de red y observe.
¿Qué es un generador de CSR?
Genera dos archivos: una solicitud de firma de certificado que se envía a una autoridad de certificación, y la clave privada que se queda con usted. La solicitud lleva su clave pública y los nombres que quiere certificar, y está firmada con la clave privada.
El formato es PKCS#10, definido en el RFC 2986. Dentro de la solicitud hay un nombre de sujeto, su clave pública, un conjunto de atributos que llevan los nombres alternativos y una firma hecha con su clave privada sobre todo lo anterior. Esa autofirma es la prueba de posesión: demuestra que quien envía la solicitud tiene la clave contra la que se emitirá el certificado.
Los dos archivos no son intercambiables. La solicitud está hecha para enviarse: a una CA, en un ticket de soporte, a donde sea. La clave privada no, nunca. En esta página la clave se genera y se queda en su navegador. Igual que con cualquier herramienta web, tiene que confiar en el código de la página, pero puede comprobar qué envía: abra el panel de red y observe mientras genera una.
La clave privadaGuarde esto
-----BEGIN PRIVATE KEY------ La mitad privadaFirma la solicitud ahora, y cada conexión a su servidor después
- Su mitad públicaCopiada en la solicitud
Una sola copia, en su equipo
La solicitud de firma de certificadoEnvíe esto
-----BEGIN CERTIFICATE REQUEST------ Nombre del sujeto108 bytesOpcional en la mayoría de los certificados
- Su clave pública294 bytesEl único campo que una autoridad de certificación usa con certeza
- Los nombres que pidió60 bytesLos nombres alternativos, incluidos como un atributo
- La firma261 bytesHecha por la clave privada, sobre todo lo anterior
No lleva ningún secreto

Los nombresLos nombres de host que debe cubrir el certificado. El primero pasa a ser el nombre común; los demás se suman a él.La claveRSA o una curva elíptica. El par lo genera su navegador, ante sus ojos.Quién es ustedLos campos del sujeto. Una CA pública los valida por su cuenta, así que solo sobreviven unos pocos.Los dos archivosLa solicitud que se envía y la clave privada que se guarda. La clave existe solo en su navegador hasta que la guarde.Lo mismo, como comandoLa línea de OpenSSL que genera exactamente esta solicitud, para cuando prefiera hacerlo usted mismo.¿Por qué generar la clave en su navegador?
Porque una clave privada que llega al servidor de otra persona cumple la propia definición que tiene la industria de una clave comprometida, haga lo que haga ese servidor con ella después.
Los Baseline Requirements del CA/Browser Forum la definen sin margen de discusión: «Se dice que una clave privada está comprometida si su valor se ha revelado a una persona no autorizada, o si una persona no autorizada ha tenido acceso a ella». No hace falta ningún uso indebido: basta con que llegue.
Y no es teórico. En 2020, DigiCert encontró 337 claves privadas que sus clientes habían pegado junto a sus solicitudes, revocó todos los certificados involucrados y lo informó públicamente: «al enviar la clave privada a DigiCert junto con el CSR, el cliente comprometió la clave privada», y agregó que «la única parte de un CSR que usamos es la clave pública». Un generador que crea la clave en su propio servidor y le entrega una copia, según esa definición, ya la ha comprometido. Esta página no puede hacer eso: crypto.subtle.generateKey se ejecuta en su navegador, dentro de un marco aislado que no tiene permiso para conectarse a ningún lado, y la página que lo rodea solo llega a ver la clave pública.
Esta página
- Web Crypto genera el par de claves
crypto.subtle.generateKey - La clave firma la solicitud
- Usted guarda los dos archivos
La clave solo ha existido en su equipo
Un generador que genera la clave en su servidor
- Sus nombres y datos van al servidor
- El servidor genera el par de claves
- La clave privada se le devuelve a usted
Comprometida por definición, antes de instalar nada
«Se dice que una clave privada está comprometida si su valor se ha revelado a una persona no autorizada, o si una persona no autorizada ha tenido acceso a ella».
Ya ha ocurridoEn 2020, una autoridad de certificación encontró 337 claves privadas enviadas junto a solicitudesSe revocaron todos los certificados involucrados
Cómo crear un CSR
Escriba los nombres de host, elija un tipo de clave y pulse el botón. Todo lo demás es opcional: un certificado moderno se identifica por sus nombres alternativos, no por su sujeto.
Ponga en el campo de nombres cada nombre que debe cubrir el certificado: example.com, www.example.com, un comodín como *.api.example.com, o una dirección IP. El primero pasa a ser también el nombre común: cuando un certificado tiene nombre común, los Baseline Requirements exigen que repita exactamente uno de los nombres alternativos.
El país, la organización y la localidad solo importan en un certificado de validación de organización o de validación extendida, e incluso entonces la CA tiene que validarlos por su cuenta antes de que entren en un certificado. En un certificado validado por dominio —el tipo que emite Let's Encrypt— los únicos campos del sujeto que permiten las reglas son el país y el nombre común. El generador marca los dos campos que una CA pública elimina o prohíbe, la unidad organizativa y la dirección de correo, y la columna junto al formulario muestra qué cambiaría.
Escriba los nombres
Cada host que debe cubrir el certificado; el primero pasa a ser el nombre comúnElija un tipo de clave
P-256, salvo que algo antiguo tenga que leerlaGenerar la solicitud
Su navegador genera la clave y firma la solicitud con ellaTome los dos archivos
Envíe la solicitud a su autoridad de certificación; guarde la clave
¿Qué tipo de clave debo elegir?
ECDSA P-256 para cualquier cosa nueva: es tan fuerte como una clave RSA de 3072 bits, mucho más pequeña, y la permiten las reglas que sigue toda autoridad de certificación pública. RSA 2048 cuando un equipo antiguo tiene que leer la clave.
El NIST ubica a P-256 y a RSA-3072 en la misma fortaleza de seguridad de 128 bits, y a RSA-4096 no le asigna ninguna fortaleza propia: el siguiente escalón de su tabla es de 7680 bits. Así que 4096 le cuesta a cada visitante trabajo extra de negociación sin ninguna ganancia documentada. P-384 es el escalón de 192 bits, y los Baseline Requirements también permiten P-521, pero Let's Encrypt rechaza P-521: una solicitud puede ser perfectamente legal y aun así fallar en la CA que pensaba usar.
Ed25519 se ofrece aquí porque es excelente para SSH, para firmar y para una CA privada, pero ninguna autoridad de certificación pública emitirá un certificado TLS contra ella. Las reglas enumeran RSA y las tres curvas del NIST, y luego dicen que «no se permiten otros algoritmos ni otros tamaños de clave». Lo mismo vale para ML-DSA, el algoritmo poscuántico: la votación que lo habría permitido en TLS público se cerró sin aprobarse en octubre de 2026. El generador lo indica junto a cada opción, en lugar de dejar que lo descubra en un correo de rechazo.
| 112 bits | 128 bits | 192 bits | 256 bits | |
|---|---|---|---|---|
| RSA | 2048 | 3072 | 7680 | 15360 |
| RSA 4096 | 4096 | |||
| ECDSA | — | P-256 | P-384 | P-521 |
4096 bits: sin escalón propio La tabla pasa de un tamaño directamente al siguiente, así que el trabajo extra de negociación no compra nada que esté documentado
Ed25519Ninguna autoridad de certificación pública emite contra ella
ML-DSAPoscuántica: la votación que la habría permitido se cerró sin aprobarse en octubre de 2026
- La misma fortaleza
- Se ofrece aquí
- En la tabla, no se ofrece aquí
- Aceptada porLet's Encrypt
Qué poner en cada campo
Nombres: cada host que cubre el certificado. País: dos letras. Organización: su nombre legal, para un certificado OV o EV. Todo lo demás es opcional, y una parte está ahora prohibida.
La unidad organizativa está prohibida. Según la votación SC047 del CA/Browser Forum, ningún certificado TLS público emitido desde el 1 de septiembre de 2022 puede incluir OU; la CA lo elimina en lugar de rechazar el pedido. Una dirección de correo en el sujeto tampoco se permite en un certificado validado por dominio, y se desaconseja en los demás. Este generador sigue ofreciendo ambos campos, para las CA privadas, y los marca.
El país es un código ISO 3166-1 alfa-2 —US, DE, GB, IN—, no el nombre de un país, ni tres letras. El estado o la provincia debe escribirse completo, sin abreviar. Para un certificado de validación extendida también se necesitan la jurisdicción de constitución y el número de registro, que este generador ofrece.
| En su solicitud | DVValidado por dominio | OVValidación de organización | EVValidación extendida |
|---|---|---|---|
Nombre comúnCN | |||
PaísC | |||
OrganizaciónO | |||
Localidad, estado o provinciaL, ST | |||
Calle, código postalstreet, postalCode | |||
Unidad organizativaOUProhibida desde el 1 de septiembre de 2022 | |||
Correo electrónicoemailAddress | |||
Número de registro, categoría de negocio, jurisdicciónserialNumber, businessCategory, jurisdictionC |
- En el certificado, tal como la CA lo validó
- Permitido, pero desaconsejado
- No va en este tipo de certificado
- Nunca permitido
¿Puedo reutilizar una clave o un CSR?
Puede —nada lo prohíbe—, pero una clave nueva para cada certificado cuesta un segundo y limita lo que puede alcanzar una sola clave filtrada.
Los Baseline Requirements son explícitos: «una solicitud de certificado PUEDE bastar para varios certificados emitidos al mismo solicitante», así que reutilizar una solicitud para renovar está permitido. El costo aparece cuando algo sale mal. Si esa clave llega a comprometerse, todos los certificados que la llevan deben revocarse en un plazo de 24 horas, no solo el que le preocupaba.
Y una clave comprometida queda quemada para siempre: una CA «DEBE rechazar una solicitud de certificado» si se le informó que la clave sufrió un compromiso, así que esa clave no podrá volver a certificarse en ninguna CA que lo sepa. Con la vigencia de los certificados bajando a 47 días en 2029, una clave reutilizada firmaría durante años a lo largo de decenas de renovaciones. Generar una nueva toma un segundo.
Una clave, reutilizada
www.example.comapi.example.commail.example.com
3 certificados revocados en 24 horas
Y la clave no podrá volver a certificarse en ninguna CA que lo sepa
Una clave nueva para cada uno
www.example.comapi.example.comSin afectarmail.example.comSin afectar
1 certificado revocado en 24 horas
Qué pasa después de enviar el CSR
La CA valida los nombres, ignora casi todo lo demás y le devuelve un certificado. Guarde la clave privada: sin ella no puede instalar el certificado.
La validación trata de los nombres, no del archivo: un registro DNS, un archivo en el servidor web o un correo a una dirección del dominio. Cuando eso se cumple, el certificado vuelve y la solicitud ya no sirve para nada más: no hace falta para instalar, renovar ni revocar nada. Lo que debe conservar es la clave privada, porque el certificado no sirve sin ella. Pegue el certificado en el decodificador de CSR y agregue al lado la clave privada para comprobar que coinciden antes de reiniciar nada.
El certificado será de corta duración. Un certificado TLS público emitido hoy no puede superar los 200 días, y eso baja a 100 el 15 de marzo de 2027 y a 47 el 15 de marzo de 2029. Con esas duraciones la renovación tiene que ser automática, es decir, ACME, y un cliente ACME genera la solicitud por usted, así que esta página es para los casos que un cliente no cubre: un dispositivo, un equipo de red, una CA que pide la solicitud a mano.
- Su equipoUsted envía la solicitud
- La autoridad de certificaciónComprueba que usted controla cada nombreUn registro DNSUn archivo en el servidor webUn correo a una dirección del dominio
- La autoridad de certificaciónFirma el certificado y se lo devuelve
- Su equipoUsted lo instala junto a la claveDespués de esto la solicitud ya no sirve para nada más
- 398 díasVigente hoy
- 200 díasdesde el 15 de marzo de 2026
- 100 díasdesde el 15 de marzo de 2027
- 47 díasdesde el 15 de marzo de 2029
Lo mismo con OpenSSL
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout example.com.key -out example.com.csr genera la clave y la solicitud en un solo paso.
El generador escribe el comando para lo que haya completado, con los nombres alternativos y todas las extensiones, y nuestras pruebas lo ejecutan con OpenSSL para comprobar que genera el mismo sujeto y las mismas extensiones que la página. Agregue -subj "/CN=example.com" para que no haga preguntas, -addext "subjectAltName=DNS:example.com,DNS:www.example.com" para los nombres, y -utf8 para que un nombre con acentos sobreviva. -nodes deja la clave sin cifrar: OpenSSL 3 prefiere la forma nueva -noenc pero sigue aceptando -nodes, que es la única forma que conoce el LibreSSL integrado en macOS. Ese LibreSSL no puede generar una clave Ed25519 en absoluto; para una, use OpenSSL 1.1.1 o posterior.
Para comprobar lo que generó: openssl req -in example.com.csr -text -verify -noout muestra cada campo y verifica la autofirma, y se detiene antes de mostrar nada si la firma falla. Para confirmar que la clave pertenece a la solicitud, compare openssl req -in example.com.csr -pubkey -noout con openssl pkey -in example.com.key -pubout. Ningún estándar le asigna una extensión de archivo a un CSR, así que .csr, .pem, .req y .txt son todas correctas.
1openssl req -new 2-utf8 3-newkey ec 4-pkeyopt ec_paramgen_curve:prime256v1 5-nodes 6-keyout example.com.key 7-out example.com.csr 8-sha256 9-subj '/CN=example.com' 10-addext 'subjectAltName=DNS:example.com,DNS:www.example.com'
openssl req -newGenerar una solicitud de firma de certificado-utf8Leer el sujeto como UTF-8, para que un nombre con acentos sobreviva-newkey…y con ella un par de claves nuevo-pkeyoptEn la curva P-256-nodesDejar el archivo de la clave sin cifrar (OpenSSL 3.0 también lo escribe -noenc)-keyoutDónde se escribe la clave privada-outDónde se escribe la solicitud-sha256El hash con el que se firma la solicitud-subjEl sujeto, para que no haga preguntas-addextLos nombres alternativos
Leerla de nuevo y verificar su propia firmaopenssl req -in example.com.csr -text -verify -noout
¿La clave pertenece a la solicitud? Las dos salidas deben ser idénticasopenssl req -in example.com.csr -pubkey -nooutopenssl pkey -in example.com.key -pubout
Cómo generar un CSR en Windows, IIS y macOS
Windows tiene certreq y un archivo .inf; macOS tiene Keychain Access. Ambos tienen una trampa que conviene conocer antes de empezar.
En Windows, certreq -new request.inf request.req lee un archivo cuya sección [NewRequest] define el sujeto y la longitud de la clave, y cuyos nombres alternativos van en [Extensions] bajo el OID 2.5.29.17 con líneas _continue_: no existe una clave SAN=, un error fácil de cometer. La propia página de referencia de Microsoft advierte que su ejemplo usa SHA-1, y Let's Encrypt rechaza una solicitud firmada con SHA-1, así que configure el hash usted mismo.
En una Mac, Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority genera una; el tipo y el tamaño de la clave están detrás de la casilla «Let me specify key pair information», y las claves RSA de menos de 2048 bits ya no se ofrecen. Ninguna de las dos vías facilita los nombres alternativos, y por eso un comando suele ser el camino más sencillo.
certreqWindows Server e IIS
certreq lee un archivo de texto sin formato y escribe la solicitudcertreq -new request.inf request.req[NewRequest]Subject = "CN=example.com"KeyAlgorithm = RSAKeyLength = 2048HashAlgorithm = sha256RequestType = PKCS10[Extensions]2.5.29.17 = "{text}"_continue_ = "DNS=example.com&"_continue_ = "DNS=www.example.com"Los nombres alternativos: una extensión identificada por su OID, un nombre por línea
Configure el hash usted mismo: el ejemplo de Microsoft está escrito en torno a SHA-1, que una autoridad de certificación rechaza
No existe una clave SAN=Keychain AccessmacOS
Keychain Access genera una desde el Certificate AssistantSu Mac nombra estos menús en su propio idiomaLet me specify key pair information
El tipo y el tamaño de la clave están detrás de esta casillaRSA hasta 4096; por debajo de 2048 ya no se ofrece¿Es seguro un generador de CSR en línea?
Depende por completo de dónde se genera la clave. Una página que la genera en su navegador es segura; una página que la genera en su servidor ha tenido acceso a su clave privada.
La prueba es simple y puede hacerla usted mismo: abra el panel de red de su navegador, genere una solicitud y observe. Si la clave se genera en la página, ni ella ni nada de lo que escribió sale: aquí las únicas solicitudes son las de la propia página y dos listas públicas de nombres, iguales para todos los visitantes. Si sale una solicitud y vuelve una clave, esa clave existió antes en otro lugar y, según la propia definición de la industria, está comprometida antes de que la instale.
Esta página hace todo su trabajo en el navegador: el par de claves sale de crypto.subtle.generateKey dentro de un marco aislado que no tiene permiso para conectarse a ningún lado, la página escribe la solicitud alrededor de la clave pública, y el marco la firma una vez con la clave privada, que nunca sale de él. Los dos archivos aparecen en su navegador y en ningún otro lugar. Si prefiere no confiar en ninguna página web para esto, el comando de OpenSSL de esta página hace lo mismo en su propia máquina: lo mostramos justamente por eso.
Esta página
tlds.jsonLa lista de dominios de nivel superior: igual para todos los visitantessuffixes.jsonLa lista de sufijos públicos: igual para todos los visitantesNada de lo que escribió, ni ninguna clave, sale de la página
Un generador que genera la clave en su servidor
…/generateSus nombres y datos-----BEGIN PRIVATE KEY-----Una clave privada, generada en otro lugarUna clave vuelve por la red: existió antes en otro lugar
Generador de CSR: preguntas y respuestas
¿Cómo creo un CSR?
¿Es seguro generar un CSR en línea?
¿Qué tipo de clave debo elegir?
¿Puedo usar una clave Ed25519 para un certificado público?
¿Para qué sirve el archivo de la clave privada?
¿Tengo que completar la organización y el país?
¿Por qué me advierte el campo de la unidad organizativa?
OU está prohibida en un certificado TLS público. Según la votación SC047 del CA/Browser Forum, ningún certificado TLS público emitido desde el 1 de septiembre de 2022 puede incluirla, así que las autoridades de certificación la eliminan del pedido en lugar de rechazarlo. Este generador sigue ofreciendo el campo, para las CA privadas, y le dice qué hará una pública.¿Puedo poner más de un dominio en un CSR?
www si la quiere. Puede combinar comodines y nombres simples, y agregar direcciones IP, aunque no todas las CA venden certificados para una dirección.¿Puedo reutilizar un CSR o una clave para el siguiente certificado?
¿Qué es una challenge password?
¿Sirve para un certificado comodín?
*.example.com en los nombres, y agregue también example.com si quiere cubrir el dominio sin subdominio: un comodín reemplaza exactamente una etiqueta y no coincide con el nombre bajo el que está. El asterisco debe ser toda la etiqueta más a la izquierda, y ninguna CA emitirá un comodín sobre un sufijo público como *.co.uk.¿Qué hago con los archivos después?
¿Le falta algo?Sugiera una función o una herramienta nueva
Herramientas relacionadas
Decodificador de CSR y Certificados
Decodifica un CSR o certificado SSL: sujeto, SAN, tamaño de clave, validez, emisor, huella digital, verificación de firma y coincidencia CSR-certificado
Verificador de Certificado SSL
Verifica la validez y detalles de seguridad del certificado SSL
Generador de registros DKIM
Crea un par de claves DKIM en su navegador y le da el registro TXT selector._domainkey para publicar
Generador de Contraseñas
Contraseñas fuertes, frases y PIN aleatorios en su navegador, con sus bits exactos y tiempo de descifrado
Verificación de salud DNS
Califique el DNS: delegación, servidores, SOA, DNSSEC y correo en 40 pruebas
Generador de UUID
Genera UUID v4, v7, v1, v5 y v3 o GUID en lote, en cualquier formato, y decodifica la versión y la marca de tiempo de un UUID
