Todos los productos
Search
Centro de documentos

Certificate Management Service:Install an SSL certificate on a Tomcat server (Linux)

Última actualización: Sep 18, 2026

Instale un certificado SSL en formato Java KeyStore (JKS) o PFX/PKCS#12 en un servidor Tomcat que ejecute Linux para habilitar HTTPS. Esta guía abarca la descarga del certificado, la configuración del archivo server.xml de Tomcat, la apertura del puerto 443 y la comprobación del despliegue.

Requisitos

Antes de empezar, asegúrese de cumplir con los siguientes requisitos:

  • Estado del certificado: Debe contar con un certificado SSL emitido por una autoridad certificadora (CA) de confianza. Si el certificado está por vencer o ya venció, renuévelo primero.

  • Coincidencia de nombres de dominio: Asegúrese de que el certificado cubra todos los nombres de dominio que desea proteger. Si necesita agregar o cambiar un nombre de dominio, puede purchase a paid certificate o add and replace domain names.

    • Nombre de dominio exacto: un certificado de nombre de dominio exacto solo aplica al dominio especificado.

      • Un certificado para example.com solo aplica a example.com.

      • Un certificado para www.example.com solo aplica a www.example.com.

    • Nombre de dominio comodín: un certificado de nombre de dominio comodín solo aplica a subdominios de primer nivel.

      • Un certificado para *.example.com aplica a subdominios de primer nivel como www.example.com y a.example.com.

      • Un certificado para *.example.com no aplica al dominio raíz example.com ni a subdominios multinivel como a.b.example.com.

    Nota

    Para que coincida con un subdominio multinivel, el campo Bound Domains debe incluir el nombre de dominio específico (por ejemplo, a.b.example.com) o un nombre de dominio comodín correspondiente (por ejemplo, *.b.example.com).

  • Permisos del servidor: Utilice la cuenta root o una cuenta con permisos de sudo.

  • Resolución DNS: El nombre de dominio se resuelve a la dirección IP pública del servidor.

Inicio rápido

El proceso de instalación consta de cuatro pasos:

  1. Descargue el paquete del certificado desde la consola de Certificate Management Service y cargue los archivos en su servidor.

  2. Abra el puerto 443 en su security group y en el firewall.

  3. Edite el archivo server.xml para agregar el conector SSL y luego reinicie Tomcat.

  4. Vaya a https://yourdomain en un navegador y confirme que aparece el ícono de candado.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Un certificado SSL emitido por una autoridad certificadora (CA) de confianza. Si el certificado está por vencer o ya venció, renuévelo primero.

  • Un certificado que coincida con todos los nombres de dominio que desea proteger. Para agregar o modificar nombres de dominio, adquiera un certificado comercial o bien agregue y reemplace nombres de dominio.

    • Nombre de dominio de coincidencia exacta: Solo aplica al dominio especificado. Por ejemplo, example.com protege únicamente example.com, mientras que www.example.com protege únicamente www.example.com.

    • Nombre de dominio comodín: Solo aplica a subdominios de primer nivel. Por ejemplo, *.example.com cubre www.example.com y a.example.com, pero no cubre el dominio raíz example.com ni subdominios multinivel como a.b.example.com.

    Para proteger un subdominio multinivel, el campo Bound Domains debe contener el subdominio exacto (por ejemplo, a.b.example.com ) o un dominio comodín que coincida (por ejemplo, *.b.example.com ).
  • Una cuenta root o una cuenta con privilegios de sudo en el servidor.

  • Un registro DNS del dominio que se resuelva a la dirección IP pública del servidor.

Paso 1: Preparar los archivos del certificado

  1. Vaya a la página SSL Certificates. En la columna Actions del certificado correspondiente, haga clic en Download Certificate. En la pestaña Download, seleccione Tomcat como Server Type y descargue el paquete.

  2. Extraiga el paquete descargado. Este contiene un archivo de certificado (.pfx o .jks) y un archivo de contraseña (.txt).

    Elija el formato de certificado adecuado para su entorno: - JKS (Java KeyStore) : Formato de almacén de claves específico de Java. Elija JKS si sus herramientas y scripts ya son compatibles con este formato. - PFX/PKCS#12 : Formato universal compatible con Java y otras plataformas. Elija PFX para integrarlo en distintos stacks tecnológicos o con sistemas que no usen Java.
  3. Cargue el archivo de certificado (.pfx o .jks) y el archivo de contraseña (.txt) en el servidor. Guárdelos en un directorio seguro, como /etc/ssl/cert/. Use la función de carga de archivos de una herramienta de inicio de sesión remoto como PuTTY, Xshell o WinSCP para transferirlos. Si utiliza una instancia de Alibaba Cloud Elastic Compute Service (ECS), consulte Cargar o descargar archivos para obtener instrucciones.

    Importante

    Después de cargar los archivos, restrinja el acceso a ellos. Permita que solo el usuario de Tomcat pueda leerlos:

    sudo chown tomcat:tomcat /etc/ssl/cert/domain_name.* sudo chmod 400 /etc/ssl/cert/domain_name.*

Paso 2: Abrir el puerto 443

Tomcat requiere que el puerto 443 esté abierto en dos niveles: en el security group de la nube y en el firewall del sistema operativo.

Abrir el puerto 443 en el security group

Si su servidor se ejecuta en Alibaba Cloud ECS, agregue una regla de entrada para permitir el puerto TCP 443:

  1. Vaya a instancias de Elastic Compute Service (ECS) y haga clic en el nombre de la instancia correspondiente.

  2. En la sección Security Group Details, agregue una regla de security group con la siguiente configuración y guárdela. Para otras plataformas de nube, consulte su documentación.

    Campo

    Valor

    Action

    Allow

    Protocol

    Custom TCP

    Destination (Current Instance)

    HTTPS (443)

    Source

    0.0.0.0/0 (anywhere)

Abrir el puerto 443 en el firewall del sistema operativo

Primero, compruebe si el puerto 443 ya es accesible. Ejecute el siguiente comando según su distribución de Linux:

RHEL/CentOS

command -v nc > /dev/null 2>&1 || sudo yum install -y nc
# Replace <your_server_public_ip> with your server's public IP address.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

Si la salida contiene Ncat: Connected to <your_server_public_ip>:443, el puerto 443 está abierto y no se requieren más acciones.

Debian/Ubuntu

command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat
# Replace <your_server_public_ip> with your server's public IP address.
sudo ss -tlnp | grep -q ':443 ' || sudo nc -l -p 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

Si la salida contiene Connection to <your_server_public_ip> port [tcp/https] succeeded! o [<your_server_public_ip>] 443 (https) open, el puerto 443 está abierto y no se requieren más acciones.

Si el puerto 443 no está abierto, identifique el firewall activo y ábralo:

if command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet firewalld; then
    echo "firewalld"
elif command -v ufw >/dev/null 2>&1 && sudo ufw status | grep -qw active; then
    echo "ufw"
elif command -v nft >/dev/null 2>&1 && sudo nft list ruleset 2>/dev/null | grep -q 'table'; then
    echo "nftables"
elif command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet iptables; then
    echo "iptables"
elif command -v iptables >/dev/null 2>&1 && sudo iptables -L 2>/dev/null | grep -qE 'REJECT|DROP|ACCEPT'; then
    echo "iptables"
else
    echo "none"
fi

Si la salida es none, no hay ningún firewall activo. De lo contrario, ejecute el comando correspondiente a su firewall:

firewalld

sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reload

ufw

sudo ufw allow 443/tcp

nftables

sudo nft add table inet filter 2>/dev/null
sudo nft add chain inet filter input '{ type filter hook input priority 0; }' 2>/dev/null
sudo nft add rule inet filter input tcp dport 443 counter accept 2>/dev/null

iptables

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Para conservar las reglas de iptables entre reinicios:

  • RHEL/CentOS:

    sudo yum install -y iptables-services
    sudo service iptables save
  • Debian/Ubuntu:

    sudo apt-get install -y iptables-persistent
    sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null

Paso 3: Configurar Tomcat

La sintaxis de configuración varía ligeramente entre las versiones de Tomcat. Siga la sección que corresponda a su versión.

Tomcat 9

  1. Desde el directorio raíz de Tomcat, abra el archivo server.xml:

    sudo vim ./conf/server.xml
  2. Configure el conector de redirección HTTP. Actualice el conector HTTP existente para redirigir el tráfico al puerto 443:

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443"
               maxParameterCount="1000"
               />
  3. Agregue el conector SSL. Elija el bloque que corresponda al formato de su certificado:

    Formato PFX

    <Connector port="443"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150"
               SSLEnabled="true"
               maxParameterCount="1000"
               >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/etc/ssl/cert/domain_name.pfx"
                         certificateKeystorePassword="<password-from-pfx-password.txt>"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

    Formato JKS

    <Connector port="443"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150"
               SSLEnabled="true"
               maxParameterCount="1000"
               >
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/etc/ssl/cert/domain_name.jks"
                         certificateKeystorePassword="<password-from-jks-password.txt>"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

    Reemplace la ruta de certificateKeystoreFile con la ruta real de su archivo de certificado. Además, sustituya el valor de certificateKeystorePassword por el contenido del archivo de contraseña correspondiente.

  4. Actualice el atributo redirectPort del conector AJP a 443:

    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="443"
               maxParameterCount="1000"
               />

Tomcat 8.5

Tomcat 8.5 requiere que especifique manualmente la implementación JSSE. La sintaxis del conector es la misma que en Tomcat 9, descrita anteriormente. Agregue el conector SSL con el bloque PFX o JKS de la sección de Tomcat 9.

Tomcat 7

Tomcat 7 usa atributos SSL en línea en el elemento Connector, en lugar de anidar SSLHostConfig.

Formato PFX

<Connector port="443"
           protocol="HTTP/1.1"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           keystoreFile="/etc/ssl/cert/domain_name.pfx"
           keystoreType="PKCS12"
           keystorePass="<password-from-pfx-password.txt>"
           clientAuth="false"
           SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
           ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

Formato JKS

<Connector port="443"
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectport="8443"
           maxParameterCount="1000"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           keystoreFile="/etc/ssl/cert/domain_name.jks"
           keystoreType="JKS"
           keystorePass="<password-from-jks-password.txt>"
           clientAuth="false"
           SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
           ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

(Opcional) Forzar la redirección de HTTP a HTTPS

Para redirigir automáticamente todas las solicitudes HTTP a HTTPS, agregue el siguiente bloque al final del archivo conf/web.xml, justo antes de la etiqueta de cierre </web-app>:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>SSL</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Validar y reiniciar Tomcat

  1. Valide la configuración. Desde el directorio bin de Tomcat, ejecute:

    ./configtest.sh

    Si la salida es Configuration file test successful, la configuración es válida. Si aparecen errores, corríjalos con base en los mensajes mostrados y vuelva a ejecutar la validación.

  2. Reinicie Tomcat para aplicar los cambios:

    sudo ./shutdown.sh
    sudo ./startup.sh

Paso 4: Comprobar el despliegue

Abra un navegador y vaya a https://yourdomain (reemplace yourdomain por su dominio real).

Un ícono de candado en la barra de direcciones confirma que el certificado se instaló correctamente.

image

A partir de la versión 117, Chrome reemplazó el ícono image por el nuevo ícono image. Haga clic en este ícono para consultar los detalles del certificado.

Si el ícono de candado no aparece o ve errores de acceso, borre la caché del navegador o inténtelo de nuevo en modo incógnito. Consulte la sección FAQ si el problema persiste.

Pase a producción

Al desplegar en producción, aplique las siguientes prácticas:

  • Ejecute Tomcat con un usuario distinto de root. Cree una cuenta de sistema dedicada con privilegios mínimos para Tomcat y nunca lo ejecute como root.

    Considere terminar SSL en la capa de puerta de enlace. Despliegue el certificado en un Server Load Balancer (SLB) o en un proxy inverso como Nginx. La puerta de enlace gestiona la terminación HTTPS y reenvía HTTP simple al backend, lo cual simplifica la administración de certificados en varios servidores.
  • Mantenga las credenciales fuera de los archivos de configuración. Use variables de entorno, un administrador de secretos o un servicio de administración de claves en la nube para inyectar la contraseña del almacén de claves durante la ejecución. Evite codificarla directamente en server.xml.

  • Fuerce la redirección de HTTP a HTTPS. Redirija todo el tráfico HTTP a HTTPS para evitar ataques de intermediario (consulte el paso opcional en Paso 3).

  • Deshabilite los protocolos TLS heredados. Deshabilite SSLv3, TLS 1.0 y TLS 1.1 en la configuración de Tomcat. Habilite únicamente TLS 1.2 y TLS 1.3.

  • Monitoree el vencimiento del certificado. Después del despliegue, habilite el monitoreo de dominios en Certificate Management Service. Alibaba Cloud comprueba la validez del certificado y envía recordatorios de renovación antes de que venza. Para obtener instrucciones, consulte Adquirir y habilitar el monitoreo de nombres de dominio públicos.

Preguntas frecuentes

No se puede acceder por HTTPS después de la instalación o actualización del certificado

Compruebe lo siguiente en orden:

  1. Puerto 443 bloqueado. Compruebe que tanto el security group como el firewall del sistema operativo permiten el tráfico TCP entrante en el puerto 443. Consulte el Paso 2.

  2. Dominio no coincidente. Confirme que el dominio al que accede aparece en el campo Bound Domains del certificado. Consulte la sección de requisitos previos para conocer las reglas de coincidencia de dominios.

  3. Tomcat no se reinició. La nueva configuración surte efecto solo después de reiniciar Tomcat. Consulte los pasos de validación y reinicio en el Paso 3.

  4. Ruta o archivo de certificado incorrecto. Compruebe que certificateKeystoreFile (o keystoreFile) en server.xml apunte al archivo de certificado correcto y actualizado.

  5. Certificado ausente en servicios ascendentes. Si su dominio pasa por Content Delivery Network (CDN), Server Load Balancer (SLB) o Web Application Firewall (WAF), también debe instalar el certificado en esos servicios. Consulte Ubicaciones de despliegue de certificados cuando el tráfico pasa por varios servicios de Alibaba Cloud.

  6. Despliegue incompleto en varios servidores. Si el DNS del dominio se resuelve a varios servidores, instale el certificado en todos ellos.

Para una solución de problemas más detallada, consulte Resolver problemas de despliegue de certificados con base en los mensajes de error del navegador y la guía de solución de problemas de despliegue de certificados SSL.

Tomcat no inicia y el registro muestra el error "Keystore was tampered with, or password was incorrect"

Esto casi siempre significa que la contraseña en server.xml no coincide con el archivo del almacén de claves. Para solucionarlo:

  1. Abra el archivo de contraseña (.txt) del paquete del certificado y copie su contenido exactamente, sin espacios finales ni saltos de línea adicionales.

  2. Actualice el atributo certificateKeystorePassword (o keystorePass) en server.xml con ese valor.

  3. Confirme que certificateKeystoreFile (o keystoreFile) apunte a la ruta de archivo correcta.

  4. Confirme que el usuario de Tomcat tenga permiso de lectura sobre el archivo del certificado.

Error "Connection was reset" o "Connection refused" al acceder al servidor

Se trata de un problema de conectividad de red, no del certificado. Compruebe lo siguiente:

  1. Confirme que tanto el security group como el firewall del sistema operativo permiten el tráfico entrante en el puerto 443 (o en el puerto configurado en server.xml). Consulte el Paso 2.

  2. Compruebe que Tomcat se está ejecutando: ps -ef | grep tomcat

  3. Confirme que el atributo port del conector SSL en server.xml coincida con el puerto al que intenta acceder.

Cómo actualizar o reemplazar un certificado SSL en Tomcat

  1. Haga una copia de seguridad de los archivos existentes. Guarde copias del archivo de certificado actual (.pfx o .jks) y del archivo de contraseña (.txt) del servidor.

  2. Descargue el nuevo certificado. Obtenga el paquete del nuevo certificado desde la consola de Certificate Management Service.

  3. Reemplace los archivos. Cargue los nuevos archivos de certificado y contraseña en la misma ruta del servidor y sobrescriba los anteriores. La ruta y el nombre del archivo deben coincidir exactamente con lo configurado en server.xml.

  4. Reinicie Tomcat. Ejecute sudo ./shutdown.sh y sudo ./startup.sh desde el directorio bin de Tomcat para aplicar el nuevo certificado.