Cómo configurar SSL / TLS para Apache Tomcat | Hosting mas barato

Apache Tomcat, o Tomcat Server, es un potente contenedor de servlet Java de código abierto que implementa varias especificaciones Java EE, incluidas JavaServer Pages (JSP), Java Servlet, WebSocket y Java EL. La aplicación es compatible con grandes sistemas de misión crítica en una amplia variedad de organizaciones e industrias respetadas. Si su empresa utiliza un servidor Tomcat, es probable que esté tratando con datos confidenciales. Una de las mejores formas de proteger de forma óptima los datos que procesa es instalar SSL / HTTPS.
Apache Tomcat admite el protocolo Secure Socket Layer (SSL), lo cual es una buena noticia, pero la mala noticia es que el proceso de configuración puede ser un poco abrumador para los principiantes. Nuestra guía completa se ha elaborado para ayudarlo a configurar HTTPS en el servidor Tomcat en poco tiempo.
¿Listo? ¡Vamos a empezar!
El primer paso para configurar HTTPS en Apache Tomcat es crear y editar un archivo conocido como Almacenamiento de claves. Este es un archivo muy importante que almacena todas las claves utilizadas para la configuración de SSL. El archivo se puede crear de dos formas:
En esta guía, nos centraremos en generar una nueva clave utilizando una aplicación llamada Herramienta clave. Dependiendo de la computadora que estés usando, abre la terminal con el comando:
cd %JAVA_HOME/bin
cd $JAVA_HOME/bin
Ejecute el siguiente comando:
"%JAVA_HOME%binkeytool" -genkey -alias tomcat -keyalg RSA -keystore pathtomykeystore
Asegúrese de sustituir la sintaxis adecuada para su sistema operativo (SO) y utilice su almacén de claves ideal camino> y Alias.
A continuación, se le pedirá que proporcione una contraseña para su almacén de claves. Elija una contraseña segura y manténgala segura (no olvide la contraseña). Dé la respuesta correcta a todas las preguntas:
Nota: he usado Starkpass como mi contraseña.
La herramienta de teclas crea un archivo (.keystore) en el directorio de inicio del usuario. La siguiente es la ubicación del archivo:
Una vez que haya creado el almacén de claves, el siguiente paso es generar el CSR. Su autoridad de certificación (CA) utiliza la CSR para crear el certificado SSL. También puede utilizar el poder de Java Keytool para generar el CSR. Ejecute el siguiente comando:
$JAVA_HOME/bin/keytool -certreq -keylag RSA -alias -file.csr -keystroke [path/to/your/keystore]
Un archivo Su certificado Name.csr ser creado. El archivo debe enviarse a su autoridad de certificación; La CA utilizará el archivo para crear su certificado único, que puede descargar siguiendo las instrucciones proporcionadas.
SSL autentica automáticamente la validez del certificado de un sitio web con “Cadena de confianza “. Inicia un protocolo de enlace adicional a través de su CA como se indica en el certificado del sitio.
A continuación, cargue su Certificado raíz; del organismo de certificación. Este certificado le ayuda a anclar la cadena de confianza del certificado. Importe el certificado al almacén de claves junto con el certificado del nuevo sitio. Su autoridad de certificación le proporcionará instrucciones sobre cómo descargar su certificado raíz.
Para importar su certificado raíz use el siguiente comando:
keytool -import -alias root -keystore [path/to/your/keystore] -archivo de trustcacerts [path/to/the/root_certificate
Next import the new certificate using the command below:
$keytool-import -alias [youralias] -Tienda de llaves [path/to/your/keystore] -Archivo [path/to/your_keystore]
Una vez hecho esto, puede estar seguro de que su almacén de claves es completamente funcional y certificado. Ahora puede continuar con el siguiente paso.
Al indicar al servidor Tomcat que utilice SSL, primero debe configurar sus conectores SSL.
Abrir en el editor de texto:
<tomcat-installation-directory>/conf/server.xml
El conector de interés es el que está en el número de puerto. 8443. Para encontrar el conector, debe buscar la siguiente línea:
El comentario que adjunta al conector ofrece la posibilidad de elegir entre JSSE y Tiempo de ejecución portátil de Apache (APR) Configuraciones. Se refiere a la implementación de SSL que queremos usar, JSSE (Configuración predeterminada de Apache Tomcat).
¿Sabes qué es APR? De lo contrario, reemplace la entrada con el siguiente comando para que el servidor Tomcat pueda encontrar el almacén de claves:
<connector port="8443" maxthreads="150" scheme="https" secure="true" SSLEnabled="true" keystoreFile="path/to/your/keystore" keystorePass="yourKeystorePassword" ClientAuth="false" keyAlias="yourAlias" sslProtocol="TLS"/>
Por otro lado, si tiene experiencia y sabe cómo funciona APR, esta opción funcionará para usted. También conocida como biblioteca nativa de Tomcat, la APR es el mejor método, especialmente si está utilizando Tomcat como servidor independiente.
Cambie la entrada de la siguiente manera para permitir que Apache Tomcat APR use OpenSSL en lugar de JSSE:
<connetcor port="8443" scheme="https" secure="true" SSLEnabled="true" SSL CertificateFile+'/path/to/your/certificate.crt" SSLCertificateKeyFile="/path/to/your/keyfile" SSLPassword="YourKeystorePassword" SSLCertificateChaineFile="path/to/your/root/certificate" KeyaAlias="yourAlias" SSLProtocoal="TLSv1"/>
Cuando se usa APR, los atributos “SSLCertificateKey” y “SSLCertificateFile” deben reemplazar el atributo KeystoreFile.
A continuación, reinicie Tomcat y abra https: // localhost: 8443 en su navegador para confirmar la configuración de HTTPS / SSL. La página debe abrirse utilizando el protocolo seguro HTTPS.
El último paso es limitar el uso de SSL. Si tiene SSL / HTTPS en. activar Archivo Apache Tomcat server.xml Configura todos los archivos para que se ejecuten como páginas seguras e inseguras. Esto puede provocar una carga del servidor no deseada que puede afectar el rendimiento de su sistema. Por este motivo, es recomendable seleccionar la aplicación que ofrecerá conexiones SSL seguras. Agregue el siguiente elemento
<security-constraint> <web-resource-collection> <web-resource-name> yourAppsName</web-resource-name> <url-pattern>/#<Url-pattern> </web-resource-collection> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
Esto establecerá todas las opciones de SSL para todas sus páginas en una ubicación central. Para deshabilitar SSL para todas las páginas, reemplace el “SECRETO” Con “NINGUNO”.
Otro punto importante es especificar la implementación que planea usar una vez que haya instalado conectores para JSSE y APR. Tomcat usa APR de forma predeterminada, pero puede usar JSSE ajustando un atributo del protocolo del conector de la siguiente manera;
<connector protocol="org.apache.coyote.http11.HTTP11NioProtocol">
Para forzar el uso de APR use el siguiente comando:
<connectore protocol="org.a[ache.coyote.http11AprProtocol">
Durante su operación (configuración SSL) pueden ocurrir algunos errores si la configuración como los alias y las contraseñas del almacén de claves no se ingresan correctamente. Algunos de los valores de esta configuración distinguen entre mayúsculas y minúsculas y deben usarse como se especifica.