En ocasiones, es posible que necesitemos implementar un certificado SSL en Tomcat para proyectos Java. La implementación de SSL en Tomcat es algo diferente de la implementación en servidores web como Nginx, Apache. En este artículo, aprenderemos cómo instalar el certificado SSL en Tomcat. Suponemos que ya ha configurado el entorno Java y el servidor Tomcat se está ejecutando.
Crear un almacén de claves
Java proporciona JKS, también conocido como Java KeyStore, como depósito de certificados de seguridad. Tanto JDK como JRE proporcionan una herramienta de utilidad de línea de comandos keytool para crear y administrar Keystore. Ejecute el siguiente comando para crear un KeyStore.
$ keytool -genkey -alias tomcat.linuxways.com -keyalg RSA -keystore /etc/pki/keystore
Crear RSE
Si va a instalar un certificado autofirmado, puede evitar este paso. Si desea instalar los certificados SSL adquiridos, debe crear un archivo CSR.
$ keytool -certreq -keyalg RSA -alias tomcat.linuxways.com -file tomcat.csr -keystore /etc/pki/keystore
Recibirá un aviso para proporcionar una contraseña de almacén de claves. Una vez que se envía la contraseña, se generará un archivo CSR. Utilice este archivo CSR para comprar un certificado SSL firmado por una CA.
Obtenga un certificado SSL firmado por CA
Una vez que el certificado sea emitido por CA, tendrá los siguientes archivos. Se toma como ejemplo un dominio (tomcat.linuxways.com).
- tomcat.linuxways.com (certificado emitido por CA)
- root.crt (certificados raíz)
- intermediate.crt (Certificados intermedios)
Instalar el certificado
Importe el certificado firmado por CA usando el siguiente comando.
$ keytool -import -alias tomcat.linuxways.com -keystore /etc/pki/keystore -trustcacerts -file path-to-certificate/tomcat.linuxways.com.crt
Donde ruta-al-certificado es el directorio de certificados y tomcat.linuxways.com.crt es el certificado SSL firmado por CA.
Instalar certificado raíz
Importe el certificado raíz con el siguiente comando.
$ keytool -import -alias root -keystore /etc/pki/keystore -trustcacerts -file path-to-certificate/root.crt
Donde root.crt es el archivo del certificado raíz.
Instalar certificado intermedio
Ejecute el siguiente comando para importar archivos de certificados intermedios.
$ keytool -import -alias intermediateca -keystore /etc/pki/keystore -trustcacerts -file path-to-certificate/intermediateca.crt
Donde iintermediateca.crt es el archivo de certificado intermedio.
Cambiar la configuración de Tomcat
Después de importar todos los certificados necesarios, ahora es el momento de configurar Tomcat Keystore. Vaya a la carpeta de instalación de Tomcat y busque el server.xml expediente. Actualice el archivo de configuración con los siguientes contenidos.
$ vi tomcat-installation-directory/config/server.xml
Ejemplo.
$ vi /opt/tomcat/config/server.xml <Connector port="4443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="4443" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" keystoreFile="/etc/pki/keystore" keystorePass="_password_" />
Para la demostración, se utiliza el puerto 4443. Puede seleccionar cualquier puerto según su entorno.
Reiniciar Tomcat
La instalación de los certificados se ha completado. Reinicie el servidor tomcat para reflejar los cambios.
$ path-to-tomcat/bin/shutdown.sh
$ path-to-tomcat/bin/startup.sh
Ejemplo,
$ /opt/tomcat/bin/shutdown.sh
$ /opt/tomcat/bin/startup.sh
Verificar el certificado
Ahora acceda a la URL del servidor Tomcat usando cualquier navegador para verificar los certificados.
https://tomcat-server:<Port>
Ejemplo,
https://tomcat.linuxways.com:4443
Conclusión
En este artículo, aprendimos cómo generar archivos CSR e instalar certificados SSL firmados por CA en Tomcat para proyectos Java.