bg-tutorials

Cómo generar un CSR en Tomcat

Este tutorial te muestra cómo generar un CSR (Certificate Signing Request) para Apache Tomcat usando la utilidad Java keytool. El proceso consta de dos comandos: primero keytool -genkeypair crea un keystore y una clave privada bajo un alias elegido, luego keytool -certreq exporta el CSR correspondiente. El mismo alias se reutiliza más adelante cuando importas el certificado firmado, de modo que la clave, el CSR y el certificado final quedan almacenados en un mismo lugar.

Lo que necesitarás

  • Una instalación de Java (JDK o JRE) para que el comando keytool esté disponible. Confírmalo con keytool -help.
  • Acceso a shell o terminal en el servidor que alojará la clave privada. La clave privada debe permanecer en este servidor.
  • El nombre de dominio completamente calificado (FQDN) exacto que deseas proteger, por ejemplo www.tudominio.com, además de cualquier dominio adicional que quieras cubrir (para el campo SAN).
  • Los datos legales de tu organización (país, estado, localidad, nombre de la organización) para el Distinguished Name del CSR.

Paso 1: Crea el keystore y la clave privada

Si ya generaste tu CSR, pasa directamente a enviar el CSR y luego a instalar tu certificado SSL en Tomcat.

Abre una terminal en el servidor y crea un nuevo keystore en formato PKCS12. PKCS12 es el estándar moderno y portátil, y ha sido el formato de keystore predeterminado en Java desde JDK 9; el formato JKS más antiguo está en desuso. Ejecuta:

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -validity 825

Qué significan las opciones:

  • -alias tomcat: el nombre de entrada dentro del keystore. Elige una etiqueta que reconozcas fácilmente (a menudo tomcat o tu dominio). Anótala. Debes reutilizar exactamente este mismo alias cuando generes el CSR y de nuevo cuando importes el certificado firmado.
  • -keyalg RSA -keysize 2048: una clave RSA de 2048 bits es el mínimo público actual. Para keystores nuevos, 3072 bits es una mejora razonable para claves de mayor duración. La mayoría de las CA públicas también aceptan ECDSA (-keyalg EC -groupname secp256r1) si prefieres una clave más pequeña y rápida.
  • -storetype PKCS12: fuerza el uso del keystore moderno PKCS12. La extensión correspondiente es .p12 (o .pfx).
  • -keystore yourdomain.p12: el archivo de keystore a crear. Reemplaza el nombre por uno que recuerdes fácilmente, y mantén este archivo a salvo; contiene tu clave privada.
  • -validity 825: cuánto tiempo es válido el certificado autofirmado provisional dentro del keystore. El certificado firmado por la CA lo reemplazará más adelante, por lo que el valor exacto no afecta a la vida útil en producción.

keytool te pedirá entonces una contraseña de keystore. Elige una contraseña segura y guárdala en tu gestor de secretos: la necesitarás para cada comando keytool posterior y para el server.xml de Tomcat. Con los keystores PKCS12, la contraseña de la clave es igual a la del keystore, así que solo hay una contraseña que recordar.

Paso 2: Introduce los datos de tu organización (DN)

keytool ahora solicita el Distinguished Name (DN): los campos de identidad que se incluyen en el CSR. Responde a cada solicitud con el valor exacto y legal de tu organización. La puntuación y la precisión importan: una CA rechazará las discrepancias frente a los registros públicos de la empresa.

  • Nombre y apellido (CN): así lo denomina keytool, pero se refiere al campo Common Name. Introduce el FQDN exacto que estás protegiendo, por ejemplo www.tudominio.com, o un comodín como *.tudominio.com. No introduzcas el nombre de una persona.
  • Unidad organizativa (OU): este campo ya no lo emiten las CA públicas y es mejor dejarlo en blanco. Pulsa Enter para omitirlo.
  • Organización (O): el nombre legal completo de tu empresa, por ejemplo Tu Empresa S.L..
  • Ciudad o localidad (L): el nombre completo de la ciudad, por ejemplo San José. No lo abrevies.
  • Estado o provincia (ST): el nombre completo del estado o provincia, por ejemplo California. No uses un código de dos letras.
  • Código de país (C): el código ISO de dos letras del país, por ejemplo US, GB, DE.

Después del último aviso, keytool muestra un resumen similar a CN=www.tudominio.com, OU=, O=Tu Empresa S.L., L=San José, ST=California, C=US. Escribe yes para confirmar. El archivo de keystore ahora existe con una entrada: tu alias, que contiene la clave privada y un certificado autofirmado provisional.

Si prefieres un comando no interactivo, pasa el DN directamente y omite las solicitudes:

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US" 
  -validity 825

Paso 3: Genera el CSR con SAN

Los navegadores y clientes modernos validan los certificados según la extensión Subject Alternative Name (SAN), no solo según el Common Name. Solicita los SAN directamente en el CSR para que la CA los incluya en el certificado emitido. Usa el mismo alias y keystore que utilizaste en el Paso 1:

keytool -certreq 
  -alias tomcat 
  -keystore yourdomain.p12 
  -file yourdomain.csr 
  -ext san=dns:yourdomain.com,dns:www.yourdomain.com

Qué significan las opciones:

  • -alias tomcat: debe coincidir con el alias del Paso 1. Es el alias cuya clave privada firma la solicitud.
  • -keystore yourdomain.p12: debe coincidir con el keystore del Paso 1.
  • -file yourdomain.csr: el nombre de archivo de salida para el CSR.
  • -ext san=dns:…: la extensión Subject Alternative Name. Enumera cada nombre de host que el certificado debe cubrir, incluyendo tanto el dominio raíz (tudominio.com) como el subdominio www. Añade más entradas separadas por comas, por ejemplo dns:api.tudominio.com.

keytool solicitará la contraseña del keystore y escribirá el CSR en yourdomain.csr en el directorio actual.

Importante: conserva tu alias y keystore

El error más común con keytool en Tomcat es importar el certificado firmado bajo un alias nuevo. Hacer esto almacena el certificado como una entrada de confianza independiente sin ninguna clave privada asociada, y TLS no funcionará. Importa siempre la respuesta firmada de vuelta en el mismo alias que contiene la clave privada (el alias del Paso 1).

Anota estos tres valores ahora, antes de cerrar la terminal:

  • El alias (en esta guía, tomcat).
  • La ruta del archivo de keystore (por ejemplo yourdomain.p12).
  • La contraseña del keystore.

Si no estás seguro de qué alias contiene tu clave, lista el contenido del keystore y busca la entrada cuyo tipo sea PrivateKeyEntry:

keytool -list -v -keystore yourdomain.p12

Paso 4: Verifica el CSR antes de enviarlo

Detecta errores tipográficos en el DN o SAN faltantes antes de que la CA los valide. Imprime el CSR con keytool:

keytool -printcertreq -file yourdomain.csr

O bien, si tienes OpenSSL instalado, puedes usarlo en su lugar:

openssl req -noout -text -in yourdomain.csr

Confirma tres cosas en el resultado: que el Subject muestra tu DN exacto, que el Subject Alternative Name incluye todos los nombres de host que necesitas, y que el tamaño de la Public-Key coincide con lo que solicitaste (RSA de 2048 bits, o lo que hayas elegido). También puedes pegar el CSR en nuestro Decodificador de CSR para hacer la misma comprobación desde el navegador.

Paso 5: Envía el CSR a tu Autoridad de Certificación

Abre yourdomain.csr en cualquier editor de texto. El archivo es texto plano, comienza con —–BEGIN CERTIFICATE REQUEST—– y termina con —–END CERTIFICATE REQUEST—–. Copia el bloque completo, incluidas esas líneas de encabezado y pie, y pégalo en el campo del CSR durante el proceso de compra con tu CA. En Windows, usa Ctrl + A y luego Ctrl + C para copiar todo el texto; en macOS, usa Cmd + A y luego Cmd + C.

Después de que la CA valide tu solicitud y emita el certificado, continúa con cómo instalar tu certificado SSL en Tomcat. Importarás el certificado firmado de nuevo en el mismo alias dentro del mismo keystore, y luego apuntarás el conector HTTPS de Tomcat a ese keystore.

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

Una imagen detallada de un dragón en vuelo
Escrito por

Redactor de contenidos experimentado especializado en Certificados SSL. Transformar temas complejos de ciberseguridad en contenido claro y atractivo. Contribuir a mejorar la seguridad digital a través de narrativas impactantes.