En este tutorial, aprenderás cómo instalar un certificado SSL en GlassFish (ahora Eclipse GlassFish) usando la utilidad Java keytool y la línea de comandos asadmin.
Generar un código CSR para GlassFish
El primer paso al solicitar un certificado SSL es crear un CSR (Solicitud de Firma de Certificado) y enviarlo a tu Autoridad de Certificación (tu proveedor SSL). El CSR es un bloque de texto que contiene detalles sobre tu sitio web y tu organización. La CA lo usa para verificar tu identidad, por lo que si el CSR contiene información incorrecta o desactualizada, la CA no firmará tu certificado.
En GlassFish, el CSR se genera con keytool a partir de un almacén de claves Java (keystore), y ese mismo keystore contiene la clave privada que reutilizarás durante la instalación. Tienes dos opciones:
- Usa nuestro Generador de CSR para crear el CSR automáticamente.
- Sigue nuestro tutorial paso a paso sobre cómo generar un CSR en GlassFish.
Puedes abrir tu archivo CSR con cualquier editor de texto (por ejemplo, Notepad). Antes de enviarlo a tu CA, te recomendamos hacer una última comprobación para detectar errores tipográficos. Usa nuestra herramienta decodificadora de CSR para inspeccionarlo.
Dependiendo del tipo de validación de tu certificado, la emisión puede tardar desde unos minutos hasta un par de días hábiles. Una vez que los archivos SSL lleguen a tu bandeja de entrada, continúa con la instalación a continuación.
Instalar un certificado SSL en GlassFish
La idea clave detrás de una instalación en GlassFish es que tu certificado firmado debe terminar vinculado a la clave privada creada con tu CSR. Esto se logra importando la cadena de certificados y el certificado firmado en el keystore que ya contiene esa clave, el mismo que usaste para generar el CSR.
Paso 1: Extrae tus archivos de certificado
Tu CA envía el certificado por correo electrónico a la dirección que proporcionaste, generalmente como un archivo ZIP. Extráelo. Los archivos llegan en uno de estos dos formatos:
- PEM: archivos separados, típicamente un .crt (tu certificado de servidor) y un .ca-bundle (los certificados raíz e intermedios).
- PKCS#7: un único archivo .p7b (o .cer) que ya agrupa tu certificado junto con la cadena completa.
Paso 2: Sube los archivos SSL a tu servidor GlassFish
Sube los archivos extraídos al servidor, en el mismo directorio que el keystore desde el que generaste tu CSR (referido a continuación como mykeystore.jks). El formato PEM requiere dos comandos de importación; PKCS#7 solo necesita uno. Elige el formato que coincida con tus archivos.
Formato PEM. Importa primero el paquete de la CA para que keytool pueda construir una cadena de confianza completa, y luego importa tu certificado de servidor. Importa el paquete de la CA con:
keytool -import -trustcacerts -alias ca -file file.ca-bundle -keystore mykeystore.jks
Usa el nombre que prefieras para el alias de esta entrada de cadena (aquí, ca), siempre que sea diferente del alias de tu clave privada. A continuación, importa tu certificado de servidor firmado en el alias de clave privada existente, el alias que usaste al generar el CSR:
keytool -import -trustcacerts -alias myalias -file file.crt -keystore mykeystore.jks
Aquí, myalias debe ser el alias que ya contiene tu clave privada. Debido a que ese alias tiene una clave, keytool trata esta importación como una respuesta de certificado y vincula el certificado firmado a la clave. Este es el paso que hace que HTTPS funcione; consulta la advertencia a continuación.
Formato PKCS#7. Un archivo .p7b ya contiene la cadena completa, por lo que un solo comando importa todo a la vez, nuevamente en el alias de la clave privada:
keytool -import -trustcacerts -alias myalias -file file.p7b -keystore mykeystore.jks
keytool solicitará la contraseña de tu keystore. Como se mencionó antes, myalias debe coincidir con el alias de tu clave privada existente. Si no recuerdas el alias, lista el contenido del keystore:
keytool -list -v -keystore mykeystore.jks
Busca la entrada cuyo tipo sea PrivateKeyEntry; ese es el alias en el que debe importarse tu certificado firmado.
⚠️ Error crítico a evitar: no importes el certificado firmado bajo un alias completamente nuevo. Si el alias no tiene una clave privada existente, keytool almacenará el certificado como una entrada de confianza independiente sin clave asociada, y TLS fallará. Importa siempre la respuesta en el alias que ya contiene la clave (alias predeterminado de GlassFish: s1as).
Paso 3: Importa al keystore predeterminado de GlassFish
Con tu certificado en su lugar, importa tu keystore al keystore predeterminado de GlassFish. En una instalación predeterminada, se encuentra en el directorio de configuración del dominio, por ejemplo glassfish/domains/domain1/config/keystore.jks (las versiones más antiguas de GlassFish 4 lo anidan bajo una carpeta superior glassfish4/). El almacén de confianza correspondiente es cacerts.jks, en el mismo directorio.
Nota: GlassFish crea domain1 de forma predeterminada. Si agregaste tu propio dominio, usa su directorio en su lugar.
Importa tu keystore al keystore de GlassFish con:
keytool -importkeystore -srckeystore mykeystore.jks -destkeystore keystore.jks
Paso 4: Haz coincidir las contraseñas del keystore
La contraseña del keystore de GlassFish debe coincidir con la contraseña maestra de GlassFish para el dominio. Si la contraseña maestra, la contraseña del keystore y la contraseña de la clave privada no coinciden todas entre sí, GlassFish no podrá desbloquear la clave y tu certificado SSL no funcionará. (En un dominio recién creado, la contraseña predeterminada del keystore es changeit.)
Paso 5: Actualiza tu configuración de GlassFish
Después de una importación exitosa, dirige el listener HTTPS de GlassFish hacia tu certificado para que sirva el nuevo certificado en lugar del autofirmado predeterminado. Puedes hacer esto desde el navegador a través de la Consola de Administración de GlassFish, o manualmente editando domain.xml.
Opción A: Consola de Administración. Primero, habilita la administración segura para el dominio:
asadmin enable-secure-admin
Reinicia el dominio de GlassFish (el predeterminado es domain1) para que el cambio surta efecto:
asadmin restart-domain domain1
Ahora abre la consola en https://yoursite.com:4848. Descarta la advertencia del certificado autofirmado y continúa. Navega a Configurations > server-config > HTTP Service > HTTP Listeners > http-listener-2.
Abre la pestaña SSL y, en el campo Certificate Nickname, introduce el alias de tu certificado (el mismo que el alias de tu keystore). Luego cambia a la pestaña General y modifica el puerto del listener a 443. GlassFish usa 8181 para HTTPS de forma predeterminada. Guarda los cambios.
Ocasionalmente, no todas las referencias de configuración se actualizan al nuevo alias en la consola. Si eso ocurre, completa el cambio manualmente en domain.xml (Opción B).
Opción B: Editar domain.xml. El archivo domain.xml se encuentra en el mismo directorio de configuración, por ejemplo glassfish/domains/domain1/config/domain.xml. Para una edición segura, detén primero el dominio:
asadmin stop-domain domain1
Abre domain.xml en un editor de texto y usa Buscar (Ctrl+F) para localizar s1as, el alias de certificado predeterminado de GlassFish. Reemplaza cada aparición de s1as con el alias de tu certificado (en esta guía, myalias). Actualizarlos todos también asegura la Consola de Administración con tu certificado.
Guarda domain.xml e inicia el dominio nuevamente:
asadmin start-domain domain1
Felicidades, tu certificado SSL ya está instalado en tu servidor GlassFish.
Prueba tu instalación SSL
Después de instalar el certificado, ejecuta nuestro SSL Checker para comprobar el estado de tu instalación. El análisis instantáneo revela cualquier error o vulnerabilidad (como un certificado intermedio faltante o una cadena no confiable) que pudiera afectar la forma en que los navegadores tratan tu certificado.
¿Dónde comprar un certificado SSL para GlassFish?
El mejor lugar para comprar un certificado SSL para GlassFish es SSL Dragon. Ofrecemos algunos de los precios más bajos del mercado y descuentos regulares en toda nuestra gama de productos SSL, y nos hemos asociado con las mejores marcas SSL de la industria para ofrecer un cifrado sólido y un soporte dedicado. Todos nuestros certificados SSL son compatibles con GlassFish.
Para ayudarte a elegir, hemos creado dos herramientas gratuitas. Nuestro Asistente SSL necesita solo unos segundos para encontrar la mejor oferta SSL para tu proyecto y presupuesto.
Preguntas frecuentes
Un dominio de GlassFish incluye dos archivos JKS en su directorio de configuración: keystore.jks, que contiene las claves privadas, y cacerts.jks, el almacén de confianza de certificados CA. Ambos se encuentran en domains/domain1/config/ de forma predeterminada. El alias de certificado predeterminado utilizado por el listener HTTP seguro es s1as, y la contraseña predeterminada del keystore es changeit.
La causa habitual es importar el certificado firmado bajo un nuevo alias en lugar del alias que ya contiene tu clave privada. keytool lo almacena entonces como una entrada de certificado de confianza sin clave, por lo que GlassFish no puede completar un handshake TLS. Vuelve a importar la respuesta firmada en el alias de clave privada existente (predeterminado s1as). La segunda causa más común es una discrepancia de contraseñas; el keystore, la clave y la contraseña maestra del dominio deben ser idénticos.
Importa primero el paquete de la CA (certificados raíz e intermedios), como entrada de confianza. Esto permite que keytool construya una cadena completa cuando luego importes tu certificado de servidor firmado en el alias de la clave privada. Con un archivo PKCS#7 (.p7b), la cadena ya viene agrupada, por lo que una sola importación se encarga de todo.
Ejecuta asadmin restart-domain domain1 para aplicar los cambios en un solo paso, o detén e inicia el dominio por separado con asadmin stop-domain domain1 seguido de asadmin start-domain domain1. Es necesario reiniciar después de habilitar la administración segura y después de editar domain.xml.
De forma predeterminada, el listener seguro (http-listener-2) usa el puerto 8181, y la Consola de Administración usa el puerto 4848. Para servir HTTPS en el puerto estándar, cambia el puerto del listener a 443 en la Consola de Administración o en domain.xml.
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


